Вопрос проверяет понимание оператора UNION в SQL, который используется для объединения результатов нескольких SELECT-запросов в один набор данных.
Оператор UNION в SQL — это мощный инструмент для комбинирования данных из нескольких запросов. Он позволяет взять результирующие наборы от двух или более инструкций SELECT и объединить их в единую таблицу результатов. Ключевое требование: каждый SELECT в UNION должен возвращать одинаковое количество столбцов, и соответствующие столбцы должны иметь совместимые типы данных (например, текст с текстом, число с числом).
При выполнении UNION система сначала выполняет каждый отдельный SELECT-запрос. Затем она объединяет все полученные строки в один промежуточный набор. После этого происходит важный шаг — удаление дубликатов. Система сравнивает все строки в объединённом наборе и оставляет только уникальные. Если вам нужно сохранить все строки, включая повторяющиеся, следует использовать UNION ALL, который работает быстрее, так как пропускает этап дедупликации.
Представьте, что у вас есть две таблицы: employees_office (сотрудники офиса) и employees_remote (удалённые сотрудники). Вам нужен общий список всех уникальных городов, где живут сотрудники.
SELECT city FROM employees_office
UNION
SELECT location FROM employees_remote
ORDER BY city;В этом примере столбцы city и location должны быть одного типа. Результат будет отсортирован по алфавиту, и каждая город будет указан только один раз, даже если он есть в обеих таблицах.
Вывод: Используйте UNION, когда вам нужно объединить результаты нескольких запросов в один уникальный набор строк. Выбирайте UNION ALL, если производительность критична и дубликаты допустимы или даже желательны.