Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Раздел UNION






Раздел UNION служит для объединения результатов выборки, возвращаемых двумя и более запросами.

 

Рассмотрим синтаксис раздела UNION:

 

< Спецификация_ Запроса_1>

UNION [АLL]

< Спецификация_ Запроса_2>

[UNION [АLL]]

< Спецификация_ Запроса_n>

 

Чтобы к результатам запросов можно было применить операцию объединения, они должны соответствовать следующим требованиям:

запросы должны возвращать одинаковый набор столбцов (причем необходимо гарантировать одинаковый порядок следования столбцов в каждом из запросов);

типы данных соответствующих столбцов второго и последующих запросов должны поддерживать неявное преобразование или совпадать с типом данных столбцов первого запроса;

ни один из результатов не может быть отсортирован с помощью раздела ORDER BY(однако общий результат может быть отсортирован, как будет показано ниже).

Указание ключевого слова ALLпредписывает включать в результат повторяющиеся строки. По умолчанию повторяющиеся строки в результат не включаются.

Продемонстрируем применение раздела UNION.Рассмотрим таблицы «Кадровый Состав» и «Студенты» и попробуем построить, например, общий список и учащихся, и преподавателей, номер телефона которых начинается на 120.

 

Сначала построим запрос для таблицы «Кадровый Состав»:

 

SELECT Фамилия, Имя, Отчество, Должность, Телефон

FROM Кадровый_ состав

WHERE Телефон LIKE '120%'

 

Результат действия запроса показан на рис. 7.28.

 

 

Затем построим запрос для таблицы «Студенты».

 

SELECT Фамилия, Имя, Отчество, Телефон

FROM Студенты

WHERE Телефон LIKE '120 %'

 

В результате выполнения запроса получим выборку, показанную на рис. 7.29.

 

Теперь объединим два запроса, чтобы в результате получить единую таблицу. Заметим, что столбец Должность отсутствует в таблице «Студенты». Чтобы в общей таблице выделить студентов, введем в запрос для таблицы «Студенты» столбец, содержащий строку — константу «Студент» для всех записей, и объединим два запроса с помощью раздела UNION:

 

SELECT Фамилия, имя, Отчество, Должность, Телефон

FROM кадровый_ состав

WHERE Телефон LIKE '120 %'

UNION

SELECT, Фамилия, имя, Отчество, Новый_ столбец = 'Студент',

Телефон

FROM Студенты

WHERE Телефон LIKE '120 %'

 

После выполнения запроса получим таблицу, показанную на рис. 7.30.

 

 

При объединении таблиц столбцам итогового набора данных всегда присваиваются те же имена, что были указаны в первом из объединяемых запросов.

Упорядочим полученный список по алфавиту, добавив предложение ORDER BY:

SELECT Фамилия, имя, Отчество, должность, Телефон

FROM Кадровый_ состав

WHERE Телефон LIKE '120 %'

UNION

SELECT Фамилия, имя. Отчество, Новый_ столбец = Студент

Телефон

FROM Студенты

WHERE Телефон LIKE '120%'

ORDER BY Фамилия

 

Результат показан на рис. 7.31.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.