Пример sql union: Оператор SQL UNION: синтаксис, примеры использования

SQL UNION Оператор

w3big.com

Latest web development tutorials

Предыдущий: SQL JOIN FULL OUTER ключевые слова

Далее: SQL SELECT INTO заявление

SQL UNION и операционные результаты для двух или более заявлений на SELECT.


SQL UNION Оператор

Результат операции UNION установлен оператор используется для объединения двух или более ЗЕЬЕСТ.

Обратите внимание, что UNION внутри каждого ЗЕЬЕСТ должны иметь одинаковое число столбцов. Столбцы также должны иметь одинаковые типы данных. В то же время, порядок столбцов в каждой ЗЕЬЕСТ должны быть одинаковыми.

SQL UNION Синтаксис


SELECT column_name(s) FROM table1

UNION

SELECT column_name(s) FROM table2 ;

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

Синтаксис SQL UNION ALL


SELECT column_name(s) FROM table1

UNION ALL

SELECT column_name(s) FROM table2 ;

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


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

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

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

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 本教程      | http://www.w3big.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/ |   0 | IND     |
+----+---------------+---------------------------+-------+---------+

Вот «приложения» Данные APP:

mysql> SELECT * FROM apps;
+----+------------+-------------------------+---------+
| id | app_name   | url                     | country |
+----+------------+-------------------------+---------+
|  1 | QQ APP     | http://im. qq.com/       | CN      |
|  2 | 微博 APP | http://weibo.com/       | CN      |
|  3 | 淘宝 APP | https://www.taobao.com/ | CN      |
+----+------------+-------------------------+---------+
3 rows in set (0.00 sec)


Примеры SQL UNION

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

примеров

Выберите страну из веб-сайтов
СОЮЗ
Выберите страну из приложений
ORDER BY страны;

Выполнить выше SQL вывода результатов заключаются в следующем:

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


SQL UNION ALL экземпляры

Следующий SQL — оператор использует UNION ALL , чтобы выбрать все страны из «сайты» и «приложения» таблицы (есть повторяющиеся значения):

примеров

Выберите страну из веб-сайтов
UNION ALL
Выберите страну из приложений
ORDER BY страны;

Выполнить выше SQL вывода результатов заключаются в следующем:


SQL UNION ALL с WHERE

Следующий SQL — оператор использует UNION ALL , чтобы выбрать все Китай (CN) Данные из «Веб — сайты» и «приложения» таблицы (есть повторяющиеся значения):

примеров


SELECT country, name FROM Websites
WHERE country=’CN’
UNION ALL

SELECT country, app_name FROM apps
WHERE country=’CN’
ORDER BY
country;

Выполнить выше SQL вывода результатов заключаются в следующем:

Предыдущий: SQL JOIN FULL OUTER ключевые слова

Далее: SQL SELECT INTO заявление



w3big. com |
HTML курс |
Web курс |
Web Tutorial

SQL. Объединение таблиц. Операция UNION с примерами

Операция UNION позволяет объединить несколько результатов выборки в один набор строк. Именно объединение строк отличает эту операцию от соединения таблиц через JOIN, которая присоединяет столбцы.

Рассмотрим пример.
Сначала придумаем две таблицы: с участниками забега; с работниками забега.

Таблица «Участники»

Имя_участникаМесто
Светлана2
Алексей4
Александр1
Екатерина5
Илья3

Таблица «Работники»

Имя_работникаФункция
ПетрМенеджер
ИванПромоутер
ЕкатеринаВрач
КириллЧеловек с водичкой

Теперь получим из таблиц уникальные имена всех людей.

--Сформируем первый набор из таблицы участников
select Имя_участника as Имя
from Участники
union
--Сформируем второй набор из таблицы работников
select Имя_работника
from Работники

Результат запроса:

Имя
Александр
Алексей
Екатерина
Иван
Илья
Кирилл
Петр
Светлана

Самый первый SELECT задает названия столбцам итоговой выборки.

Обратите внимание на то, что в вышеприведенном примере для уникальности имен не потребовалось использовать ключевое слово DISTINCT, т.к. операция UNION уникализирует строки после их объединения.
Если нужно получить все записи, в том числе одинаковые, то нужно использовать операцию UNION ALL вместо просто UNION.

Можно объединять более 2 наборов строк – просто продолжать писать «UNION SELECT …».

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

  • для набора №1 первый столбец имеет строковый тип VARCHAR, второй столбец числовой тип FLOAT;
  • для набора №2 первый столбец – VARCHAR, второй столбец – числовой тип INT.

Несмотря на то, что второй столбец для разных наборов отличается по типу данных, запрос все равно выполнится, т.к. INT будет преобразован к FLOAT.

Если требуется сделать сортировку полученной выборки, то предложение ORDER BY записывается в самом последнем селекте.

select col1, col2, col3
from Table1
union all
select col1, col2, col3
from Table2
union all
select col1, col2, col3
from Table3
order by col1 -- Сортируем весь результат
  • < Назад

Новые статьи:

  • Объединение таблиц – UNION

  • Соединение таблиц – операция JOIN и ее виды

  • Тест на знание основ SQL

Если материалы office-menu. ru Вам помогли, то поддержите, пожалуйста, проект, чтобы я мог развивать его дальше.

Добавить комментарий

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

Резюме : в этом руководстве показано, как использовать 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:

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

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

Примеры SQL UNION

SQL UNION, пример

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

 

SELECT идентификатор ОТ А;

Язык кода: SQL (язык структурированных запросов) (sql)

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

 

SELECT идентификатор ОТ Б;

Язык кода: SQL (язык структурированных запросов) (sql)

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

 

ВЫБЕРИТЕ идентификатор ОТ а СОЮЗ ВЫБИРАТЬ идентификатор ОТ б;

Язык кода: 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 используется для объединения имен и фамилий сотрудников и иждивенцев.

 

ВЫБЕРИТЕ имя, фамилия ОТ сотрудники СОЮЗ ВЫБИРАТЬ имя, фамилия ОТ иждивенцы СОРТИРОВАТЬ ПО фамилия;

Язык кода: SQL (язык структурированных запросов) (sql)

Попробуйте

В этом руководстве вы узнали, как использовать оператор UNION для объединения двух или более наборов результатов из нескольких запросов.

Было ли это руководство полезным?

ОБЪЕДИНЕНИЕ SQL | Промежуточный SQL

Начиная здесь? Этот урок является частью полного учебника по использованию SQL для анализа данных. Проверьте начало.

В этом уроке мы рассмотрим:

  • SQL оператор UNION
  • Практические задачи

Оператор SQL UNION

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

Давайте попробуем это с инвестиционными данными Crunchbase, которые были разбиты на две таблицы для целей этого урока. Следующий запрос отобразит все результаты из первой части запроса, а затем все результаты из второй части в той же таблице:

 ВЫБОР *
  ИЗ tutorial.crunchbase_investments_part1
 СОЮЗ
 ВЫБИРАТЬ *
   ИЗ tutorial.crunchbase_investments_part2
 

Обратите внимание, что UNION добавляет только отдельные значения. В частности, когда вы используете UNION , набор данных добавляется, а все строки в добавленной таблице, полностью идентичные строкам в первой таблице, удаляются. Если вы хотите добавить все значения из второй таблицы, используйте UNION ALL . Скорее всего, вы будете использовать UNION ALL 9.0013 гораздо чаще, чем UNION . В данном конкретном случае повторяющихся строк нет, поэтому UNION ALL даст тот же результат:

 SELECT *
  ИЗ tutorial.crunchbase_investments_part1
 СОЮЗ ВСЕХ
 ВЫБИРАТЬ *
   ИЗ tutorial.crunchbase_investments_part2
 

SQL имеет строгие правила добавления данных:

  1. Обе таблицы должны иметь одинаковое количество столбцов
  2. Столбцы должны иметь те же типы данных в том же порядке, что и первая таблица

Хотя имена столбцов не обязательно должны совпадать, вы обнаружите, что обычно они совпадают. Это связано с тем, что в большинстве случаев, когда вы хотите использовать UNION , необходимо сшивать вместе разные части одного и того же набора данных (как в данном случае).

Поскольку вы пишете два отдельных оператора SELECT , вы можете обрабатывать их по-разному перед добавлением. Например, вы можете фильтровать их по-разному, используя разные предложения WHERE .

Оттачивайте свои навыки SQL

Практические задачи

Напишите запрос, который добавляет два набора данных crunchbase_investments выше (включая повторяющиеся значения). Отфильтруйте первый набор данных только для компаний с именами, начинающимися с буквы «Т», и отфильтруйте второй для компаний с именами, начинающимися с «М» (оба значения не чувствительны к регистру). Включите только столбцы company_permalink , company_name и invester_name .

ПопробуйтеСмотреть ответ

Немного сложнее:

Практическая задача

Напишите запрос, который показывает 3 столбца. Первый указывает, из какого набора данных (часть 1 или 2) взяты данные, второй показывает статус компании, а третий — подсчет количества инвесторов.