SQL - Оператор UNION
Здравствуйте, будущие маги SQL! Сегодня мы отправимся в увлекательное путешествие в мир операторов SQL UNION. Не волнуйтесь, если вы новички в программировании — я буду вашим доброжелательным проводником, объясняя все шаг за шагом. Так что возьмите кружку кофе (или чая, если это ваш выбор) и погружайтесь с нами!
Оператор SQL UNION
Представьте, что вы планируете большой праздник и у вас есть два списка гостей: один для друзей и другой для семьи. Оператор SQL UNION как бы combines эти два списка в один мастер-список, не включая дубликаты. Замечательно, правда?
На языке SQL, оператор UNION позволяет нам combine результативные наборы двух или более SELECT запросов. Вот базовая синтаксис:
SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;
Запомните, чтобы UNION работал правильно:
- Количество столбцов в каждом SELECT запросе должно быть такое же.
- Типы данных соответствующих столбцов должны быть совместимы.
- Порядок столбцов в каждом SELECT запросе должен быть таким же.
Давайте рассмотрим несколько примеров, чтобы это стало clearer.
UNION на одном поле
Предположим, у нас есть две таблицы: fruits
и vegetables
. Мы хотим создать список всех товаров.
SELECT name FROM fruits
UNION
SELECT name FROM vegetables;
Этот запрос даст нам один список всех фруктов и овощей, без дубликатов. Если в обеих таблицах есть 'Apple', он появится только один раз в результате.
UNION на нескольких полях
Теперь давайте добавим цены к названиям. Мы можем сделать это так:
SELECT name, price FROM fruits
UNION
SELECT name, price FROM vegetables;
Это даст нам список всех товаров с их ценами. Помните, что порядок и количество столбцов должны соответствовать в обоих SELECT запросах.
UNION с предложением WHERE
Мы также можем использовать предложения WHERE с UNION для фильтрации наших результатов. Например, если мы хотим только те товары, которые стоят меньше 5 долларов:
SELECT name, price FROM fruits WHERE price < 5
UNION
SELECT name, price FROM vegetables WHERE price < 5;
Этот запрос даст нам список всех фруктов и овощей, которые стоят меньше 5 долларов.
UNION с предложением ORDER BY
Что, если мы хотим отсортировать наш combined список? Мы можем использовать ORDER BY, но он должен идти после последнего SELECT запроса:
SELECT name, price FROM fruits
UNION
SELECT name, price FROM vegetables
ORDER BY name;
Это даст нам алфавитно отсортированный список всех фруктов и овощей.
UNION с псевдонимами
Иногда мы можем хотеть дать нашим столбцам разные имена в выводе. Мы можем сделать это, используя псевдонимы:
SELECT name AS item_name, price AS item_price FROM fruits
UNION
SELECT name, price FROM vegetables;
В этом случае столбец 'name' будет отображаться как 'item_name', а 'price' как 'item_price' в результирующем наборе.
Вот таблица, резюмирующая методы UNION, которые мы обсуждали:
Метод | Описание |
---|---|
Основной UNION | Combines результативные наборы двух или более SELECT запросов |
UNION на одном поле | Combines один столбец из нескольких таблиц |
UNION на нескольких полях | Combines несколько столбцов из нескольких таблиц |
UNION с WHERE | Фильтрует результаты перед combining |
UNION с ORDER BY | Сортирует combined результаты |
UNION с псевдонимами | Переименовывает столбцы в выводе |
Помните, практика делает perfect! Попробуйте написать свои собственные UNION запросы, экспериментируйте с разными таблицами и условиями. Before you know it, вы будете UNIONить как профессионал!
Надеюсь, этот учебник помог вам demystify оператор SQL UNION. Продолжайте программировать, stay curious, и не забывайте получать удовольствие на ходу. В конце концов, каждый великий программист начал exactly где вы находитесь сейчас. Счастливого запроса!
Credits: Image by storyset