Для чего используется оператор UNION в SQL?

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

Ответ

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

Ключевые особенности:

  • Удаление дубликатов: UNION автоматически удаляет повторяющиеся строки из финального результата.
  • Совместимость запросов: Все SELECT-запросы должны иметь одинаковое количество столбцов, и типы данных в соответствующих столбцах должны быть совместимы.
  • Сортировка: Порядок столбцов определяется первым запросом. Сортировка (ORDER BY) применяется только к конечному объединенному результату.

Пример: Получить список всех имен сотрудников и подрядчиков.

-- Имена сотрудников из IT-отдела
SELECT name FROM employees WHERE department = 'IT'
UNION
-- Имена подрядчиков-разработчиков
SELECT name FROM contractors WHERE role = 'Developer'
ORDER BY name; -- Сортировка по имени для всего списка

Когда использовать UNION ALL? Если дубликаты не нужно удалять (например, для повышения производительности), используйте UNION ALL. Он работает быстрее, так как не проверяет уникальность строк.