РУКОВОДСТВО РАЗРАБОТЧИКА ИНФОРМАЦИОННЫХ СИСТЕМ СУБД ORACLE

       

Операции над множествами в операторах SELECT


Операция

Выполняемые функции

UNION

Комбинирует два запроса; возвращает все неповторяющиеся строки, извлеченные хотя бы одним из запросов.

UNION ALL

Комбинирует два запроса; возвращает все строки, извлеченные хотя бы одним из запросов, вклячая повторяющиеся.

INTERSECT

Комбинирует два запроса; возвращает все неповторяющиеся строки, извлеченные каждым из запросов.

MINUS

Комбинирует два запроса; возвращает все неповторяющиеся строки, извлеченные первым запросом, но не извлеченные вторым.



Операция

Выполняемые функции

(+)

Указывает, что предшествующий столбец является столбцом внешнего соединения.

*

Используется вместо имен столбцов при выборке всех

столбцов из таблицы или представления.

PRIOR

Используется в иерархическом древовидном запросе для определения зависимости между родительскими и дочерними строками. Смотрити оператор SELECT.

ALL

Оставляет повторяющиеся строки в результате запроса (установлен по умолчанию ALL, но не DISTINCT).

DISTINCT

Удаляет повторяющиеся строки из результата запроса.

Пример 5. Показать всех врачей с кодом специальности равным 111 и работающих в подразделении №2.

SELECT dc_name FROM doctors WHERE dc_speciality_nnn = 111 AND dc_shtat_nnn = 2 ORDER BY dc_name; Пример 6. Показать всех пациентов врача Иванова А. А. SELECT pt.pt_name FROM patients pt ,doctors dc WHERE dc.dc_nnn = pt.pt_dc_nnn AND dc.dc_name = 'ИВАНОВ А. А.' ORDER BY pt.pt_name;

На этом примере остановимся подробнее: Первое - здесь впервые появились в запросе псевдонимы таблиц (pt, dc), это очень важный элемент , так как может оказаться, что по нерадивости у Вас в обоих таблицах имеются одинаковые наименования столбцов и тогда для обращения к ним потребуется использование псевдонимов таблиц. Второе - Делая запрос к нескольким таблицам необходимо использовать джойны (dc.dc_nnn = pt.pt_nnn), т.е. явно задавать те поля, которые определяют отношения между таблицами, причем чесло джойнов равняется N-1, где N - число таблиц в запросе. Третье - выборка данных по условию dc.dc_name = 'ИВАНОВ А. А.' накладывает очень жесткие требования на правильность ввода данных (они могут быть набиты маленькими буквами, через несколько пробелов и т.п.), не учет этих особенностей приведет к тому, что некоторая нужная информация не будет выбрана. Чтобы избежать этого лучше в условиях использовать числовые поля, например личный номер врача (если он имеется БД).О принципах написание SELECT можно написать несколько томов, мы здесь изложили только несколько, с нашей точки зрения, важных особенностей, более подробную информацию по синтаксису можно всегда найти в справочной литературе.

DELETE

Удаляет строки из таблицы или из базовой таблицы представления, удовлетворяющие условию WHERE. Удаляет все строки, если условие WHERE не задано.

Пример:

Удаляем все записи из таблицы Праздничных дней.delete from prazdniki;



Содержание раздела