
- •Лабораторная работа № 10 Использование в операторе select подзапросов, возвращающих множество значений. Цель работы
- •Ход работы
- •Методические указания Использование предложений all, some, any.
- •Использование having и агрегатных функций для вложенных подзапросов.
- •Внешние соединения.
- •Union - объединение результатов выполнения нескольких операторов select.
- •Отчет должен содержать:
Union - объединение результатов выполнения нескольких операторов select.
Иногда бывает полезным объединять два или более результирующих набора данных возвращаемых после выполнения двух или более операторов SELECT. Такое объединение производится при помощи оператора UNION. Результирующие наборы данных должны иметь одинаковую структуру, т.е. одинаковый состав возвращаемых столбцов. Если в результирующих наборах данных имеется одна и та же запись, в сводном наборе данных она не дублируется.
ПРИМЕР
Соединить результаты выполнения трех запросов:
1) выбрать данные для паспортов с серией АА;
2) выбрать данные для паспортов, номер которых начинается на 4;
3) выбрать данные для паспортов, выданных в 2000 году;
SELECT *
FROM PasportData
WHERE Series = ‘AA’
Результат работы оператора приведен в таблице 11.4.
Таблица 11.4.
Code |
Series |
Number |
Birthday |
Birthplace |
Sex |
IssuePlace |
IssueDate |
Note |
1 |
АА |
45003 |
30.05.1930 |
Россия, г. Опочка |
Жен. |
Днепропет-ровск |
12.01.1995 |
blob |
2 |
АА |
15700 |
23.02.1930 |
Россия. г. Владимир |
Жен. |
г. Житомир |
16.03.2000 |
blob |
SELECT *
FROM PasportData
WHERE Number BETWEEN 40000 AND 49999
Результат работы оператора приведен в таблице 11.5.
Таблица 11.5.
Code |
Series |
Number |
Birthday |
Birthplace |
Sex |
IssuePlace |
IssueDate |
Note |
1 |
АА |
45003 |
30.05.1930 |
Россия, г. Опочка |
Жен. |
Днепропет-ровск |
12.01.1995 |
blob |
7 |
АЗ |
43188 |
13.11.1970 |
Днепропетровская область, г. Днепродзержинск |
Жен. |
Днепропет-ровская область, г. Днепро-дзержинск |
15.05.1998 |
blob |
12 |
ИК |
45190 |
18.07.1983 |
Днепропетровская область, село Петропавловка |
Жен. |
Днепропетровская область, село Петропав-ловка |
20.09.1999 |
blob |
SELECT *
FROM PasportData
WHERE IssueDate BETWEEN ‘01/01/2000’ AND ‘12/31/2000’
Результат работы оператора приведен в таблице 11.6.
Таблица 11.6.
Code |
Series |
Number |
Birthday |
Birthplace |
Sex |
IssuePlace |
IssueDate |
Note |
2 |
АА |
15700 |
23.02.1930 |
Россия. г. Владимир |
Жен. |
г. Житомир |
16.03.2000 |
blob |
8 |
АК |
23490 |
05.01.1961 |
Россия, город Самара |
Жен. |
Днепропет-ровск |
13.09.2000 |
blob |
Произведем объединение трех результирующих наборов данных.
SELECT *
FROM PasportData
WHERE Series = ‘AA’
UNION
SELECT *
FROM PasportData
WHERE Number BETWEEN 40000 AND 49999
UNION
SELECT *
FROM PasportData
WHERE IssueDate BETWEEN ‘01/01/2000’
AND ‘12/31/2000’
Результат работы оператора приведен в таблице 11.7.
Таблица 11.7.
Code |
Series |
Number |
Birthday |
Birthplace |
Sex |
IssuePlace |
IssueDate |
Note |
1 |
АА |
45003 |
30.05.1930 |
Россия, г. Опочка |
Жен. |
Днепропет-ровск |
12.01.1995 |
blob |
2 |
АА |
15700 |
23.02.1930 |
Россия. г. Владимир |
Жен. |
г. Житомир |
16.03.2000 |
blob |
7 |
АЗ |
43188 |
13.11.1970 |
Днепропетровская область, г. Днепродзержинск |
Жен. |
Днепропет-ровская область, г. Днепро-дзержинск |
15.05.1998 |
blob |
12 |
ИК |
45190 |
18.07.1983 |
Днепропетровская область, село Петропавловка |
Жен. |
Днепропетровская область, село Петропав-ловка |
20.09.1999 |
blob |
8 |
АК |
23490 |
05.01.1961 |
Россия, город Самара |
Жен. |
Днепропет-ровск |
13.09.2000 |
blob |