Запрос на объединение
Оператор UNION позволяет объединить выходные наборы нескольких инструкций SELECT в одну результирующую таблицу (так называемое вертикальное объединение). Этот запрос является аналогом операции объединения отношений в реляционной алгебре. При объединении записи, возвращаемые второй и последующими инструкциями SELECT, будут дописываться в конец первой, причем из результата выборки будут всегда исключаться повторяющиеся записи. В выходных наборах всех инструкций SELECT должно быть одинаковое количество полей с одинаковыми характеристиками (последнее требование в некоторых СУБД не является обязательным). В крайнем случае некоторую инструкцию SELECT можно дополнить строковыми константами или вычисляемыми полями. В качестве заголовков столбцов для выходного набора будут приниматься имена полей первой инструкции. Для выполнения сортировки результирующего набора данных объединение может дополняться оператором ORDER BY, который записывается в конце последней инструкции SELECT:
SELECT Фамилия & “ “ & Имя & “ ” & Отчество As Название, Город FROM Клиенты
UNION SELECT Поставщик, Город FROM Поставщики
ORDER BY Название, Город;
Кроме UNION в SQL2 включены еще две операции реляционной алгебры: исключения – EXCEPT (аналог операции разности . Отношение R включает записи, присутствующие в A и отсутствующие в B) и пересечения – INTERSECT (аналог операции пересечения . Отношение R включает записи, присутствующие как в A, так и в B). Как и для объединения, операнды (таблицы) этих операций должны содержать соответствующий по типам набор полей.
Дата добавления: 2016-10-26; просмотров: 1834;