Как работает оператор UNION в SQL?

«Как работает оператор UNION в SQL?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Ключевые правила:

  1. Количество и порядок столбцов во всех SELECT должны совпадать.
  2. Типы данных соответствующих столбцов должны быть совместимы.
  3. Имена столбцов в итоговом наборе берутся из первого запроса.

Пример:

-- Получить уникальные имена всех сотрудников и подрядчиков
SELECT first_name FROM employees
UNION
SELECT name FROM contractors
ORDER BY first_name;

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

-- Получить ВСЕ имена, включая повторяющиеся
SELECT first_name FROM employees
UNION ALL
SELECT name FROM contractors;