Разница в SQL между операторами Union, Union All и Union Distinct

Raznica V Sql Mezdu Operatorami Union Union All I Union Distinct



SQL предоставляет нам оператор UNION, который позволяет нам объединять наборы результатов двух или более операторов SELECT в один набор результатов. В SQL существует три основных типа операторов UNION: UNION, UNION ALL и UNION DISTINCT.

В этом руководстве рассматриваются эти три типа ОБЪЕДИНЕНИЙ и приводятся реальные и практические примеры работы с ними.







ПРИМЕЧАНИЕ: В этом примере мы будем использовать образец базы данных Sakila в демонстрационных целях. Перед выполнением этих команд убедитесь, что он у вас установлен. Вы можете проверить наш учебник по этому, чтобы узнать больше.



Оператор СОЕДИНЕНИЯ SQL

Как уже упоминалось, оператор UNION позволяет нам объединить результирующий набор двух или более операторов select и удалить повторяющиеся значения. Синтаксис оператора UNION следующий:



ВЫБЕРИТЕ столбец1, столбец2,...
ИЗ таблицы1
СОЮЗ
ВЫБЕРИТЕ столбец1, столбец2,...
ИЗ таблицы2;


В синтаксисе предыдущего примера мы используем операторы SELECT для извлечения данных из указанных таблиц. Затем оператор UNION объединяет два набора результатов в один набор. Давайте возьмем пример того, как это сделать, используя таблицу акторов, определенную в базе данных Sakila.





Рассмотрим следующий пример запроса, который извлекает имя и фамилию актеров из таблицы актеров и таблицы клиентов:

ВЫБЕРИТЕ имя, фамилия
ОТ актера
СОЮЗ
ВЫБЕРИТЕ имя, фамилия
ОТ заказчика; ВЫБЕРИТЕ имя, фамилия
ОТ актера
СОЮЗ
ВЫБЕРИТЕ имя, фамилия
ОТ заказчика;


Предыдущий запрос изменяет имя и фамилию как из таблиц актеров, так и из таблиц клиентов и возвращает значения в виде единого результата.



Пример вывода выглядит следующим образом:

Оператор SQL UNION ALL

В отличие от оператора UNION, который удаляет повторяющиеся значения из набора результатов, оператор UNION возвращает все строки таблицы, включая дубликаты.

Синтаксис следующий:

ВЫБЕРИТЕ столбец1, столбец2,...
ИЗ таблицы1
СОЮЗ ВСЕХ
ВЫБЕРИТЕ столбец1, столбец2,...
ИЗ таблицы2;


В следующем примере имя и фамилия выбираются из таблиц актеров и клиентов в базе данных Sakila:

ВЫБЕРИТЕ имя, фамилия
ОТ актера
СОЮЗ ВСЕХ
ВЫБЕРИТЕ имя, фамилия
ОТ заказчика;


Пример вывода выглядит следующим образом:

Оператор SQL UNION DISTINCT

Другой тип оператора объединения — UNION DISTINCT. Этот оператор является просто дубликатом оператора UNION, который выполняет аналогичное действие.

Синтаксис следующий:

ВЫБЕРИТЕ столбец1, столбец2,...
ИЗ таблицы1
СОЮЗ ОТЛИЧНЫЙ
ВЫБЕРИТЕ столбец1, столбец2,...
ИЗ таблицы2;


Операторы SELECT извлекают данные из указанных таблиц, а оператор UNION DISTINCT объединяет наборы результатов в один набор результатов, включающий уникальные строки.

В примере базы данных Sakila мы можем запустить следующую команду:

ВЫБЕРИТЕ имя, фамилия
ОТ актера
СОЮЗ ОТЛИЧНЫЙ
ВЫБЕРИТЕ имя, фамилия
ОТ заказчика;


Это должно вернуть результат, аналогичный оператору UNION.

Заключение

Мы научились работать с различными типами UNIONS в SQL. Оператор UNION объединяет результирующий набор двух или более операторов select и удаляет повторяющиеся записи. UNION ALL выполняет аналогичное действие, но включает все повторяющиеся строки. Наконец, UNION DISTINCT идентичен собственному оператору UNION.