Содержание

UNION — Учебник SQL — Schoolsw3.com


❮ Назад Далее ❯


UNION

Оператор UNION используется для объединения результирующего набора из двух или более заявлений SELECT.

  • Каждый оператор SELECT в UNION должен иметь одинаковое количество столбцов
  • Столбцы также должны иметь схожие типы данных
  • Столбцы в каждом заявлении SELECT также должны располагаться в том же порядке

Синтаксис UNION

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

Синтаксис UNION ALL

Оператор UNION по умолчанию выбирает только отдельные значения. Чтобы разрешить повторяющиеся значения, использовать UNION ALL:

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

Примечание: Имена столбцов в результирующем наборе обычно равны именам столбцов в первом заявлении SELECT в UNION.


Демо база данных

В этом уроке мы будем использовать хорошо известный пример базы данных Northwind.

Ниже приведен выбор из таблицы «Customers»:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico

И выбор из таблицы «Suppliers»:

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountry
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonEC1 4SDUK
2New Orleans Cajun DelightsShelley BurkeP. O. Box 78934New Orleans70117USA
3Grandma Kelly’s HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA



Пример SQL UNION

Следующая инструкция SQL возвращает города (только отдельные значения) как из таблицы «Customers», так и из таблицы «Suppliers»:

Пример

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

Попробуйте сами »

Примечание: Если некоторые клиенты или поставщики имеют один и тот же город, то каждый город будет указан только один раз, поскольку UNION выбирает только различные значения. Используйте UNION ALL, чтобы также выбрать повторяющиеся значения!


Пример SQL UNION ALL

Следующая инструкция SQL возвращает города (также повторяющиеся значения) как из таблицы «Customers», так и из таблицы «Suppliers»:

Пример

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

Попробуйте сами »


Пример SQL UNION с WHERE

Следующая инструкция SQL возвращает немецкие города (только отдельные значения) как из таблицы «Customers», так и из таблицы «Suppliers»:

Пример

SELECT City, Country FROM Customers
WHERE Country=’Germany’
UNION
SELECT City, Country FROM Suppliers
WHERE Country=’Germany’
ORDER BY City;

Попробуйте сами »


Пример SQL UNION ALL с WHERE

Следующая инструкция SQL возвращает немецкие города (также повторяющиеся значения) как из таблицы «Customers», так и из таблицы «Suppliers»:

Пример

SELECT City, Country FROM Customers
WHERE Country=’Germany’
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country=’Germany’
ORDER BY City;

Попробуйте сами »


Пример UNION другой

Следующая инструкция SQL содержит список всех клиентов и поставщиков:

Пример

SELECT ‘Customer’ As Type, ContactName, City, Country
FROM Customers
UNION
SELECT ‘Supplier’, ContactName, City, Country

FROM Suppliers;

Попробуйте сами »

Обратите внимание на «AS Type» выше — это псевдоним. Псевдонимы SQL используются для присвоения таблице или столбцу временного имени. Псевдоним существует только на время выполнения запроса. Итак, здесь мы создали временный столбец с именем «Type», который перечисляет, является ли контактное лицо «клиентом» или «поставщиком».

❮ Назад Далее ❯

База Данных MySQL UNION Оператор

HTML5CSS.ru

ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ

❮ Назад Дальше ❯


Оператор Union SQL

Оператор UNION используется для объединения результирующего набора двух или более инструкций SELECT.

  • Каждая инструкция SELECT внутри Union должна иметь одинаковое количество столбцов
  • Столбцы также должны иметь схожие типы данных
  • Столбцы в каждой инструкции SELECT также должны быть в том же порядке

UNION Синтаксис

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

UNION ALL Синтаксис

Оператор Union выбирает по умолчанию только отдельные значения. Чтобы разрешить повторяющиеся значения, используйте объединение ALL:

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

Примечание: Имена столбцов в результирующем наборе обычно равны именам столбцов в первой инструкции SELECT в Union.


Демонстрационная база данных

В этом учебнике мы будем использовать хорошо известную базу данных Northwind Sample.

Ниже представлен выбор из таблицы «Customers»:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D. F.05023Mexico

И выбор из таблицы «Поставщики»:

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountry
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonEC1 4SDUK
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA
3Grandma Kelly’s HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA



Пример объединения SQL

Следующая инструкция SQL выбирает все различные города (только отдельные значения) от «Customers» и «поставщики»:

Пример

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

Примечание: Если некоторые клиенты или поставщики имеют один и тот же город, то каждый город будет указан только один раз, поскольку Union выбирает только отдельные значения. Используйте UNION ALL для выбора повторяющихся значений!


SQL UNION все примеры

Следующая инструкция SQL выбирает все города (повторяющиеся значения также) от «Customers» и «поставщики»:

Пример

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;


SQL UNION с где

Следующая инструкция SQL выбирает все различные немецкие города (только отдельные значения) от «Customers» и «поставщики»:

Пример

SELECT City, Country FROM Customers
WHERE Country=’Germany’
UNION
SELECT City, Country FROM Suppliers
WHERE Country=’Germany’
ORDER BY City;


SQL UNION все с где

Следующая инструкция SQL выбирает все немецкие города (повторяющиеся значения также) от «Customers» и «поставщики»:

Пример

SELECT City, Country FROM Customers
WHERE Country=’Germany’
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country=’Germany’
ORDER BY City;


Другой пример объединения

В следующей инструкции SQL перечислены все клиенты и поставщики:

Пример

SELECT ‘Customer’ As Type, ContactName, City, Country
FROM Customers
UNION
SELECT ‘Supplier’, ContactName, City, Country
FROM Suppliers;

❮ Назад Дальше ❯

PHP\CSS\JS\HMTL Editor


Copyright 2018-2020 HTML5CSS.
ru

Правила и Условия Политика конфиденциальности О нас Контакты

Лучший способ объединения запросов SQL [обновлено]

В большинстве случаев для извлечения полезной информации в реальных приложениях требуются данные из нескольких таблиц. SQL предоставляет для этого несколько инструментов, и одним из таких инструментов является оператор SQL UNION. Это используется для объединения результатов двух команд выбора, выполненных для столбцов из разных таблиц.

Что такое UNION в SQL?

Оператор UNION используется для объединения данных из результатов двух или более командных запросов SELECT в один отдельный набор результатов. Этот оператор удаляет любые дубликаты, присутствующие в объединяемых результатах.

Чтобы понять этот оператор, давайте разберемся в его синтаксисе.

Синтаксис для использования оператора SQL UNION

ВЫБРАТЬ столбец_1, столбец_2,… столбец_n

ИЗ таблицы_1

СОЮЗ

ВЫБРАТЬ столбец_1, столбец_2,. .. столбец_n

ИЗ таблицы_2;

  • Количество столбцов, извлекаемых каждой командой SELECT в рамках UNION, должно быть одинаковым.
  • Столбцы в одной и той же позиции в каждом операторе SELECT должны иметь одинаковые типы данных. Например, «char» и «varchar» — это идентичные типы данных.
  • Столбцы должны быть в правильном порядке в инструкциях SELECT.

Применим этот оператор к разным столбцам таблицы.

В качестве примера возьмем следующую таблицу «Employee_dept»:

Другая таблица, «Менеджер», например: 

Чтобы определить, к каким городам принадлежат сотрудники и менеджеры из двух вышеприведенных таблиц, мы будем использовать следующий запрос:

Это приведет к следующему:

Это показывает, что в результате нет копий. Имя столбца результата — «Город», так как результат занимает имена столбцов первого оператора SELECT.

Использование UNION для нескольких полей

Мы можем применить UNION к нескольким столбцам, а также упорядочить результаты с помощью оператора ORDER BY в конце.

Чтобы получить имя и отдел каждого сотрудника и менеджера из двух приведенных выше примеров таблиц, используйте следующий код: 

Это приведет к следующему:

Результат сортируется по «Dept_ID».

Мы также можем фильтровать строки, извлекаемые каждым оператором SELECT. Давайте посмотрим, как это делается.

Использование предложения Where с оператором UNION

Мы можем использовать предложение WHERE в одном или обоих операторах SELECT, чтобы отфильтровать объединяемые строки.

  • Чтобы получить имена сотрудников и менеджеров и зарплаты, которые превышают 60 000, из таблиц «Employee_dept» и «Manager», мы введем следующее: 

Это приведет к следующему:

  • Мы также можем использовать предложение WHERE только в одном из операторов SELECT в UNION.

Чтобы найти имена и адреса всех менеджеров в наборе данных и всех сотрудников, имеющих «Dept_ID», равный 1003:

Это приведет к следующему:

Использование UNION с псевдонимами

Псевдонимы SQL — это временные имена, присвоенные таблицам или столбцам. Эти псевдонимы существуют только на время запроса, в котором они используются. Мы используем оператор «AS» для создания псевдонимов.

Например, мы будем использовать следующий запрос, чтобы получить всю информацию о сотрудниках и менеджерах, и мы классифицируем их в соответствии с их ролями.

В приведенном выше запросе мы создали временный столбец с пометкой «Тип», который будет использоваться для классификации информации как информации о сотрудниках или менеджерах.

Результат приведенного выше запроса:

Руководители помечены как «Менеджер», а их подчиненные — как «Сотрудник» во временной колонке «Тип» результата UNION.

Псевдонимы помогают в создании упорядоченных результатов таблицы.

СОЮЗ ВСЕХ Оператор

Оператор UNION не допускает дубликатов. Мы можем использовать оператор UNION ALL, если хотим, чтобы дубликаты присутствовали в комбинации двух или более операторов SELECT.

Этот оператор SQL подчиняется тем же правилам, что и оператор UNION, за исключением использования в синтаксисе ключевого слова UNION ALL вместо ключевого слова UNION.

Например, если нам нужен список всех городов (включая дубликаты) из наших таблиц «Employee_dept» и «Manager», мы будем использовать следующий запрос:

Это приведет к следующему:

Как мы видим, результат содержит все города, включая все дубликаты.

На этом мы подошли к концу этой статьи об операторе UNION.

Следующие шаги

Если мы помним все правила и синтаксис оператора SQL UNION, объединение результатов запроса становится легкой задачей. Используя эти знания, мы можем добиться самых разных результатов и получить очень полезную информацию.

Теперь, когда вы знаете, как использовать оператор UNION, пришло время начать запрашивать и манипулировать всеми видами наборов данных, извлекать из них полезную информацию и шаблоны и продвигаться вперед на пути к тому, чтобы стать экспертом по SQL. Если вам понравилась эта статья и вы хотите пройти сертификацию, ознакомьтесь с нашей программой для аспирантов по веб-разработке с полным стеком, так как она охватывает все, что вам нужно знать о SQL.

У вас есть к нам вопросы? Задайте их в разделе комментариев к этой статье «SQL UNION: лучший способ объединения SQL-запросов», и наши эксперты в этой области ответят на них за вас.

Объединение наборов результатов из нескольких запросов

Резюме : в этом руководстве показано, как использовать SQL UNION для объединения двух или более наборов результатов из нескольких запросов, и объясняется разница между UNION и UNION ALL.

Введение в оператор SQL UNION

Оператор UNION объединяет наборы результатов двух или более операторов SELECT в один набор результатов. Следующий оператор иллюстрирует, как использовать оператор UNION для объединения наборов результатов двух запросов:

 ВЫБОР
    столбец1, столбец2
ОТ
    Таблица 1
СОЮЗ [ВСЕ]
ВЫБИРАТЬ
    столбец3, столбец4
ОТ
    Таблица 2;  Язык кода: SQL (язык структурированных запросов) (sql)  

Чтобы использовать оператор UNION, вы пишете отдельные операторы SELECT и соединяете их ключевым словом UNION.

Столбцы, возвращаемые операторами SELECT, должны иметь одинаковый или преобразуемый тип данных, размер и порядок.

Система баз данных обрабатывает запрос, выполняя сначала два оператора SELECT. Затем он объединяет два отдельных набора результатов в один и удаляет повторяющиеся строки. Чтобы исключить повторяющиеся строки, система базы данных сортирует комбинированный результирующий набор по каждому столбцу и просматривает его в поисках совпадающих строк, расположенных рядом друг с другом.

Чтобы сохранить повторяющиеся строки в результирующем наборе, используйте оператор UNION ALL.

Предположим, у нас есть два набора результатов A(1,2) и B(2,3). Следующий рисунок иллюстрирует A UNION B:

А следующий рисунок иллюстрирует A UNION ALL B

Объединение отличается от объединения тем, что объединение объединяет столбцов нескольких таблиц, а объединение объединяет строк таблиц.

Примеры SQL UNION

SQL UNION пример

Чтобы получить данные из таблицы A, используйте следующий оператор SELECT:

 SELECT
    идентификатор
ОТ
    А;  Язык кода: SQL (язык структурированных запросов) (sql)  

Чтобы получить данные из таблицы B, используйте следующую инструкцию:

 SELECT
    идентификатор
ОТ
    Б;  Язык кода: SQL (язык структурированных запросов) (sql)  

Чтобы объединить наборы результатов этих двух запросов, используйте оператор UNION следующим образом:

 SELECT
идентификатор
ОТ
а
СОЮЗ
ВЫБИРАТЬ
идентификатор
ОТ
б;  Язык кода: SQL (язык структурированных запросов) (sql)  

Набор результатов включает только 3 строки, поскольку оператор UNION удаляет одну повторяющуюся строку.

Пример SQL UNION ALL

Чтобы сохранить повторяющуюся строку, используйте оператор UNION ALL следующим образом:

SQL UNION с ORDER BY, пример

Чтобы отсортировать набор результатов, вы помещаете предложение ORDER BY после всех операторов SELECT. следующим образом:

 ВЫБЕРИТЕ
идентификатор
ОТ
а
СОЮЗ
ВЫБИРАТЬ
идентификатор
ОТ
б
ЗАКАЗАТЬ ПО ИДЕНТИФИКАТОРУ DESC;  Язык кода: SQL (язык структурированных запросов) (sql)  

Система базы данных выполняет следующие шаги:

  1. Сначала выполните каждую инструкцию SELECT по отдельности.
  2. Во-вторых, объедините наборы результатов и удалите повторяющиеся строки, чтобы создать объединенный набор результатов.
  3. В-третьих, отсортируйте объединенный результирующий набор по столбцу, указанному в предложении ORDER BY.

На практике мы часто используем оператор UNION для объединения данных из разных таблиц. См. следующие таблицы сотрудников и иждивенцев:

В следующем операторе используется оператор UNION для объединения имен и фамилий сотрудников и иждивенцев.