Операторы UNION и UNION ALL в SQL

Оператор UNION в SQL

Оператор UNION используется для объединения результатов множества SELECT-запросов.

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

SQL UNION 语法

table_name1 SELECT column_name(s) Грамматика SQL UNION ALL
Перечислить все уникальные имена сотрудников в Китае и США:
table_name1 SELECT column_name(s) FROM

UNIONГрамматика SQL UNION

По умолчанию, оператор UNION выбирает уникальные значения. Если разрешены повторяющиеся значения, используйте UNION ALL.

table_name1 SELECT column_name(s) Грамматика SQL UNION ALL
SELECT E_Name FROM Employees_China
table_name1 SELECT column_name(s) FROM

table_name2

Кроме того, имена столбцов в результатах UNION всегда равны именам столбцов в первом SELECT-запросе UNION.

Примеры, используемые в этом примере, представляют собой исходные таблицы:

Employees_USA: Результат
E_ID E_Name
01 Zhang, Hua
02 Bush, George
03 Wang, Wei

Employees_China:

Employees_USA: Результат
E_ID Yang, Ming
01 Adams, John
02 Bush, George
03 Carter, Thomas

04

Использование команды UNION

Пример

Перечислить всех сотрудников в Китае и США:
Перечислить все уникальные имена сотрудников в Китае и США:
UNION ALL

SELECT E_Name FROM Employees_USA

Результат
E_Name
Zhang, Hua
Bush, George
Wang, Wei
Yang, Ming
Adams, John
Carter, Thomas

UNIONКомментарий:

SELECT E_Name FROM Employees_China

Эта команда не может перечислить всех сотрудников в Китае и США. В примере выше у нас есть два сотрудника с одинаковыми именами, и только один из них был перечислен. Команда UNION выбирает только уникальные значения.

Запрос 1 Команды UNION ALL и UNION почти эквивалентны, но команда UNION ALL перечисляет все значения.
SELECT E_Name FROM Employees_China
Запрос 1 SQL

Запрос 2

Использование команды UNION ALL

Пример:

Перечислить всех сотрудников в Китае и США:
SELECT E_Name FROM Employees_China
UNION ALL

SELECT E_Name FROM Employees_USA

Результат
E_Name
Zhang, Hua
Bush, George
Wang, Wei
Yang, Ming
Adams, John
Bush, George
Carter, Thomas