Операции над множествами. Лекция 7

Содержание

Слайд 2

Цели Описание операторов над множествами Использование операторов над множествами для объединения

Цели

Описание операторов над множествами
Использование операторов над множествами для объединения нескольких запросов

в один запрос
Контроль порядка возвращаемых строк
Слайд 3

Операции над множествами UNION/UNION ALL A B A B A B INTERSECT A B EXCEPT

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

UNION/UNION ALL

A

B

A

B

A

B

INTERSECT

A

B

EXCEPT

Слайд 4

Особенности при работе с операторами Выражения в секции SELECT должны совпадать

Особенности при работе с операторами

Выражения в секции SELECT должны совпадать по

количеству.
Тип данных каждого столбца во втором запросе должен совпадать с типом данных соответствующего столбца в первом запросе.
Скобки можно использовать для изменения последовательности выполнения.
Предложение ORDER BY может появиться только в самом конце инструкции.
Слайд 5

Особенности при работе с операторами Повторяющиеся строки автоматически удаляются, за исключением

Особенности при работе с операторами

Повторяющиеся строки автоматически удаляются, за исключением UNION

ALL.
В результате появляются имена столбцов из первого запроса.
По умолчанию выходные данные сортируются в порядке возрастания, за исключением UNION ALL.
Слайд 6

Используемые таблицы EMPLOYEES: Предоставляет подробную информацию обо всех текущих сотрудниках JOB_HISTORY:

Используемые таблицы

EMPLOYEES: Предоставляет подробную информацию обо всех текущих сотрудниках
JOB_HISTORY: Записывает сведения

о дате начала и дате окончания предыдущей работы, а также код занимаемой должности и код отдела
Слайд 7

Оператор UNION A B Оператор UNION возвращает строки из обоих запросов (без дубликатов).

Оператор UNION

A

B

Оператор UNION возвращает строки из обоих запросов (без дубликатов).

Слайд 8

Оператор UNION Отображение текущих и предыдущих сведений о работе всех сотрудников,

Оператор UNION

Отображение текущих и предыдущих сведений о работе всех сотрудников, исключая

дубликаты.

SELECT employee_id, job_id
FROM employees
UNION
SELECT employee_id, job_id
FROM job_history;



Слайд 9

Оператор UNION ALL A B Оператор UNION ALL возвращает строки из обоих запросов, включая все дубликаты.

Оператор UNION ALL

A

B

Оператор UNION ALL возвращает строки из обоих запросов, включая

все дубликаты.
Слайд 10

Оператор UNION ALL SELECT employee_id, job_id, department_id FROM employees UNION ALL

Оператор UNION ALL

SELECT employee_id, job_id, department_id
FROM employees
UNION ALL
SELECT employee_id, job_id,

department_id
FROM job_history
ORDER BY employee_id;



Слайд 11

Оператор INTERSECT A B Оператор INTERSECT возвращает строки, общие для обоих

Оператор INTERSECT

A

B

Оператор INTERSECT возвращает строки, общие для обоих запросов. Дублирующийся строки

отфильтровываются, если не указано ALL.
Слайд 12

Оператор INTERSECT Отображение идентификаторов сотрудников и идентификаторов должностей тех сотрудников, которые

Оператор INTERSECT

Отображение идентификаторов сотрудников и идентификаторов должностей тех сотрудников, которые в

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

SELECT employee_id, job_id
FROM employees
INTERSECT
SELECT employee_id, job_id
FROM job_history;

Слайд 13

Оператор EXCEPT A B Оператор EXCEPT возвращает все строки, выбранные первым

Оператор EXCEPT

A

B

Оператор EXCEPT возвращает все строки, выбранные первым запросом, но отсутствующие

во втором наборе результатов запроса. Дублирующиеся строки отфильтровываются, если не указано ALL.