SQL и базы данныхMiddleТехническое
Обзор основных SQL-операций объединения данных
Краткий ответ
В SQL существуют четыре ключевые операции объединения: UNION, UNION ALL, INTERSECT и EXCEPT. Они позволяют комбинировать результаты запросов с разным поведением по отношению к дубликатам и пересечениям строк.
Развёрнуто
Краткий ответ
В SQL операции объединения данных включают UNION, UNION ALL, INTERSECT и EXCEPT. UNION удаляет дубликаты, объединяя результат двух запросов, а UNION ALL сохраняет все строки. INTERSECT возвращает только общие строки, а EXCEPT — уникальные строки из первого набора, отсутствующие во втором.
Как это работает
Операции объединения позволяют комбинировать результаты двух или более запросов с похожей структурой колонок.
UNIONсобирает все уникальные строки из обоих запросов.UNION ALLвозвращает все строки, включая дубликаты.INTERSECTвыдает только те строки, которые присутствуют в обоих запросах.EXCEPTпоказывает строки, которые есть в первом запросе, но отсутствуют во втором.
| Операция | Удаление дубликатов | Результат |
|---|---|---|
| UNION | Да | Все уникальные строки из обоих запросов |
| UNION ALL | Нет | Все строки из обоих запросов |
| INTERSECT | Да | Пересечение строк |
| EXCEPT | Да | Разница: строки из первого запроса, которых нет во втором |
Пример
-- Получить всех клиентов из двух таблиц, без повторов
SELECT client_id FROM clients_a
UNION
SELECT client_id FROM clients_b;
-- Вернуть всех клиентов, включая дубликаты
SELECT client_id FROM clients_a
UNION ALL
SELECT client_id FROM clients_b;
-- Найти клиентов, которые есть в обеих таблицах
SELECT client_id FROM clients_a
INTERSECT
SELECT client_id FROM clients_b;
-- Найти клиентов из первой таблицы, отсутствующих во второй
SELECT client_id FROM clients_a
EXCEPT
SELECT client_id FROM clients_b;
В этом примере показано, как каждая операция влияет на итоговый набор данных.
Что важно знать на собеседовании
UNIONпо умолчанию убирает дубликаты, что влияет на производительность.UNION ALLбыстрее, так как не требует дополнительной сортировки для удаления дубликатов.INTERSECTиEXCEPTне поддерживаются во всех СУБД или имеют особенности реализации.- Количество и порядок столбцов в объединяемых запросах должны совпадать.
- Типы данных в соответствующих колонках должны быть совместимы для корректного объединения.
Тема: SQL и базы данных | Уровень: middle