При обработке данных в базах данных мы часто используем операторы множества в SQL , чтобы получить данные в соответствии с нашими требованиями путем объединения двух или более операторов SELECT. В этой статье о SQL UNION я расскажу об операторе UNION, используемом для получения данных, в следующей последовательности:
Приступим!
Что такое оператор SQL UNION?
Как следует из названия, этот оператор / предложение используется для объединения результатов двух или более операторов SELECT. Здесь каждый оператор SELECT, используемый в операторе UNION, должен иметь одинаковое количество столбцов в одинаковом порядке. Кроме того, все столбцы, представленные в операторах SELECT, должны иметь похожие типы данных.
Предложение UNION дает на выходе только уникальные значения. На всякий случай, если вам нужны повторяющиеся значения, тогда вам нужно использовать предложение UNION ALL.
Продолжая эту статью о SQL UNION, давайте разберемся с синтаксисом.
Синтаксис SQL UNION
UNION Синтаксис
ВЫБРАТЬ Column1, Column2, Column3, ..., ColumnN FROM Table1 UNION SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2
UNION ALL Синтаксис
ВЫБРАТЬ Column1, Column2, Column3, ..., ColumnN FROM Table1 UNION ALL SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2
Продолжая эту статью, давайте разберемся в различиях между UNION и UNION ALL.
Различия между SQL UNION и UNION ALL
СОЮЗ | СОЮЗ ВСЕ |
Объединяет два или более набора результатов и не сохраняет повторяющиеся значения. | Объединяет два или более набора результатов и сохраняет повторяющиеся значения. |
Синтаксис: СОЮЗ | Синтаксис: СОЮЗ ВСЕ |
Далее, в этой статье о SQL UNION, давайте разберемся с различными способами использования этого оператора.
Примеры SQL UNION и UNION ALL
Для вашего лучшего понимания я рассмотрю следующие таблицы, чтобы показать вам различные примеры.
Таблица сотрудников
EmpID | имя | EmpAge | город | Почтовый индекс | Страна |
один | Эмма | 2. 3 | Берлин | 12109 | Германия |
2 | Рахул | 26 | Мумбаи | 400015 | Индия |
3 | Aayra | 24 | Нью-Йорк | 10014 | ИСПОЛЬЗОВАНИЕ |
4 | Джон | 32 | Лондон | E1 7AE | Великобритания |
5 | Дерек | 29 | Нью-Йорк | 10012 | ИСПОЛЬЗОВАНИЕ |
Таблица проектов
ProjectID | имя | Рабочие дни | город | Почтовый индекс | Страна |
один | Проект 1 | 10 | Берлин | 12109 | Германия |
2 | Проект 2 | 7 | Мумбаи | 400015 | Индия |
3 | Проект 3 | двадцать | Дели | 110006 | Индия |
4 | Проект 4 | 15 | Мумбаи | 400015 | Индия |
5 | Проект 5 | 28 | Берлин | 12109 | Германия |
Начнем с примеров.
Примеры SQL UNION
Пример оператора UNION
Напишите запрос для извлечения отдельных городов из таблицы «Сотрудники и проекты».
ВЫБРАТЬ Город ИЗ СОЮЗА сотрудников ВЫБРАТЬ Город ИЗ Проектов ЗАКАЗАТЬ ПО городам
Вывод:
город |
Берлин |
Дели |
Лондон |
Мумбаи |
Нью-Йорк |
Пример оператора UNION ALL
Напишите запрос для извлечения городов из таблицы «Сотрудники и проекты». Здесь должны быть включены повторяющиеся значения.
ВЫБРАТЬ Город ИЗ СОЮЗА сотрудников ВСЕ ВЫБРАТЬ Город ИЗ Проектов ЗАКАЗАТЬ ПО городам
Вывод:
город |
Берлин |
Берлин |
Берлин |
Дели |
Лондон |
Мумбаи Java найти наибольшее значение в массиве |
Мумбаи |
Мумбаи |
Нью-Йорк |
Нью-Йорк |
Далее в этой статье давайте разберемся, как использовать предложение UNION с псевдонимами SQL.
UNION с псевдонимами SQL
Используются псевдонимы SQLдля присвоения таблице или столбцу временного имени. Итак, давайте напишем запрос, чтобы перечислить всех уникальных сотрудников и проекты.
ВЫБРАТЬ «Сотрудник» КАК Тип, Имя, Город, Страна ИЗ СОЮЗ сотрудников ВЫБРАТЬ «Проект», Имя, Город, Страна ИЗ Проектов
Вывод:
Тип | имя | город | Страна |
Наемный рабочий | Эмма | Берлин | Германия |
Наемный рабочий | Рахул | Мумбаи | Индия |
Наемный рабочий | Aayra | Нью-Йорк | ИСПОЛЬЗОВАНИЕ |
Наемный рабочий | Джон | Лондон | Великобритания |
Наемный рабочий | Дерек | Нью-Йорк | ИСПОЛЬЗОВАНИЕ |
Проект | Проект 1 | Берлин | Германия |
Проект | Проект 2 | Мумбаи | Индия |
Проект | Проект 3 | Дели | Индия |
Проект | Проект 4 | Мумбаи | Индия |
Проект | Проект 5 | Берлин | Германия |
UNION с предложением WHERE
Напишите запрос, чтобы получить отдельные города Индии и их почтовые индексы из таблицы «Сотрудники» и «Проекты».
ВЫБРАТЬ Город, Почтовый индекс, Страна ОТ сотрудников ГДЕ Страна = 'Индия' СОЮЗ ВЫБРАТЬ Город, Почтовый индекс, Страна ОТ Проекты ГДЕ Страна = 'Индия' ЗАКАЗАТЬ по городу
Вывод:
город | Почтовый индекс | Страна |
Дели | 110006 | Индия |
Мумбаи | 400015 | Индия |
UNION ALL с предложением WHERE
Напишите запрос для извлечения городов Индии и их почтовых индексов из таблиц «Сотрудники» и «Проекты», где разрешены повторяющиеся значения.
ВЫБРАТЬ Город, Почтовый индекс, Страна ОТ сотрудников ГДЕ Страна = 'Индия' СОЮЗ ВСЕ ВЫБРАТЬ Город, Почтовый индекс, Страну ИЗ проектов ГДЕ Страна = 'Индия' ЗАКАЗАТЬ ПО городу
Вывод:
город | Почтовый индекс | Страна |
Дели | 110006 | Индия |
Мумбаи | 400015 | Индия |
Мумбаи | 400015 | Индия |
Мумбаи | 400015 | Индия |
Продвигаясь дальше по этой статье, давайте разберемся, как использовать предложения UNION и UNION ALL с JOINS.СОЕДИНЕНИЯ в SQL которые используются для объединения строк из двух или более таблиц на основе связанного столбца между этими таблицами.
UNION с JOINS
Оператор SQL UNION можно использовать с для получения данных из двух разных таблиц. В качестве примера я собираюсь рассмотреть следующую таблицу вместе с таблицей «Сотрудники».
Таблица ProjectDetails
PID | Рабочие дни | EmpID | Стоимость проекта |
11 | 12 | 4 | 20000 |
22 | 16 | 3 | 35000 |
33 | 30 | один | 60000 |
44 | 25 | 3 | 45000 |
55 | 21 | один | 50 000 |
ВЫБЕРИТЕ EmpID, имя, CostforProject из сотрудников. ЛЕВЫЙ ПРИСОЕДИНЯЙТЕСЬ к ProjectDetails в Employees.EmpID = ProjectDetails.EmpID UNION. ВЫБРАТЬ EmpID, Name, CostforProject из сотрудников. ПРАВО ПРИСОЕДИНЯЙТЕСЬ к ProjectDetails в Employees.EmpID = ProjectDetails.EmpID.
Вывод:
EmpID | имя | Стоимость проекта |
один | Эмма | 60000 |
один | Эмма | 50 000 |
2 | Рахул | ЗНАЧЕНИЕ NULL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Джон | 20000 |
5 | Дерек | ЗНАЧЕНИЕ NULL |
UNION ALL с JOINS
Напишите запрос для получения EmpID, Name и CostforProject из таблицы Employees и ProjectDetails, где разрешены повторяющиеся значения.
ВЫБЕРИТЕ EmpID, имя, CostforProject из сотрудников. СЛЕВА ПРИСОЕДИНЯЙТЕСЬ к ProjectDetails в Employees.EmpID = ProjectDetails.EmpID UNION. ВСЕ ВЫБРАТЬ EmpID, Name, CostforProject из сотрудников. ПРАВО ПРИСОЕДИНЯЙТЕСЬ к ProjectDetails в Employees.EmpID = ProjectDetails.EmpID.
Вывод:
EmpID | имя | Стоимость проекта |
один | Эмма | 60000 |
один | Эмма | 50 000 |
2 | Рахул | ЗНАЧЕНИЕ NULL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Джон | 20000 |
5 | Дерек | ЗНАЧЕНИЕ NULL |
4 | Джон | 20000 |
3 | Aayra | 35000 |
один | Эмма | 60000 |
3 | Aayra | 35000 |
один | Эмма | 50 000 |
На этом я подошел к концу статьи о SQL UNION. Надеюсь, вам понравилось читать эту статью о SQL UNION. Мы видели различные способы использования команд UNION и UNION ALL для написания запросов. Если вы хотите узнать больше о MySQL и познакомьтесь с этой реляционной базой данных с открытым исходным кодом, а затем ознакомьтесь с нашими который включает в себя живое обучение под руководством инструктора и опыт реальных проектов. Этот тренинг поможет вам глубже понять MySQL и достичь мастерства в этой теме.
Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев к «SQL UNION», и я вам еще вернусь.