SQL - Оператор UNION

Здравствуйте, будущие маги SQL! Сегодня мы отправимся в увлекательное путешествие в мир операторов SQL UNION. Не волнуйтесь, если вы новички в программировании — я буду вашим доброжелательным проводником, объясняя все шаг за шагом. Так что возьмите кружку кофе (или чая, если это ваш выбор) и погружайтесь с нами!

SQL - UNION Operator

Оператор SQL UNION

Представьте, что вы планируете большой праздник и у вас есть два списка гостей: один для друзей и другой для семьи. Оператор SQL UNION как бы combines эти два списка в один мастер-список, не включая дубликаты. Замечательно, правда?

На языке SQL, оператор UNION позволяет нам combine результативные наборы двух или более SELECT запросов. Вот базовая синтаксис:

SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;

Запомните, чтобы UNION работал правильно:

  1. Количество столбцов в каждом SELECT запросе должно быть такое же.
  2. Типы данных соответствующих столбцов должны быть совместимы.
  3. Порядок столбцов в каждом 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