Ранее нами были рассмотрены однотабличные запросы. Для размещения нескольких запросов вместе и объединение их вывода используют предложение UNION, которое объединяет вывод двух или более SQL запросов в единый набор строк и столбцов.
Пример 1. Получить список всех студентов и преподавателей, фамилии которых заключены между буквами К и С.
SELECT SFAM, SIMA, SOTCH
FROM STUDENTS
WHERE SFAM BETWEEN’K’ AND ‘C’
UNION
SELECT TFAM, TIMA, TOTCH
FROM TEACHERS
WHERE TFAM BETWEEN ‘K’AND ‘C’;
Результат запроса:
--------------------------------------------------------------------------------
Казанко Виталий Владимирович
Костыркин Олег Владимирович
Позднякова Любовь Алексеевна
Котенко Анатолий Николаевич
Нагорный Евгений Васильевич
Поляков Анатолий Алексеевич
В этом случае заголовки столбцов исключаются. Существуют правила объединения запросов:
- число включаемых столбцов должно совпадать в каждом из объединяющихся запросов;
- в объединяемых столбцах типы данных должны быть совместимыми;
- пустые значения NULL запрещены в любом столбце объединения;
|
|
- нельзя использовать агрегатные функции;
- UNION автоматически исключает дубликаты строк из вывода;
- при объединении более двух запросов используются скобки, причем объединение сначала осуществляется внутри скобок;
- можно вставлять константы и выражения.
Пример 2. Получить список фамилий всех студентов и преподавателей, указывая кем он является.
SELECT ‘ Студент ‘SFAM
FROM STUDENTS
UNION
SELECT ‘ Преподаватель’ TFAM
FROM TEACHERS;
Результат запроса:
-------------------------------------------------------------------
Студент Поляков
Студент Старова
Студент Гриценко
Студент Котенко
Студент Нагорный
Преподаватель Викулина
Преподаватель Костыркин
Преподаватель Казанко
Преподаватель Позднякова
Преподаватель Загарийчук
Пример 3. Упорядочить последний запрос по алфавиту.
SELECT ‘ Студент ‘ SFAM
FROM STUDENTS
UNION
SELECT ‘ Преподаватель’ TFAM
FROM TEACHERS
ORDER BY 2 ASC;
Результат запроса:
--------------------------------------------------------
Преподаватель Викулина
Студент Гриценко
Преподаватель Загарийчук
Преподаватель Казанко
Преподаватель Костыркин
Студент Котенко
Студент Нагорный
Преподаватель Позднякова
Студент Поляков