Пример 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 для объединения наборов результатов двух запросов:
Язык кода: SQL (язык структурированных запросов) (sql)
ВЫБЕРИТЕ столбец1, столбец2 ОТ Таблица 1 СОЮЗ [ВСЕ] ВЫБИРАТЬ столбец3, столбец4 ОТ Таблица 2;
Чтобы использовать оператор 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:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT идентификатор ОТ А;
Чтобы получить данные из таблицы B, используйте следующую инструкцию:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT идентификатор ОТ Б;
Чтобы объединить наборы результатов этих двух запросов, используйте оператор UNION следующим образом:
Язык кода: SQL (язык структурированных запросов) (sql)
ВЫБЕРИТЕ идентификатор ОТ а СОЮЗ ВЫБИРАТЬ идентификатор ОТ б;
Набор результатов включает только 3 строки, поскольку оператор UNION удаляет одну повторяющуюся строку.
SQL UNION ALL пример
Чтобы сохранить повторяющуюся строку, вы используете оператор UNION ALL следующим образом:
SQL UNION с ORDER BY пример
Чтобы отсортировать набор результатов, вы помещаете предложение ORDER BY после всех операторов SELECT следующим образом:
Кодовый язык: SQL (язык структурированных запросов) (sql)
ВЫБЕРИТЕ идентификатор ОТ а СОЮЗ ВЫБИРАТЬ идентификатор ОТ б ЗАКАЗАТЬ ПО ИДЕНТИФИКАТОРУ DESC;
Система базы данных выполняет следующие шаги:
- Сначала выполните каждую инструкцию SELECT по отдельности.
- Во-вторых, объедините наборы результатов и удалите повторяющиеся строки, чтобы создать объединенный набор результатов.
- В-третьих, отсортируйте объединенный набор результатов по столбцу, указанному в предложении 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 имеет строгие правила добавления данных:
- Обе таблицы должны иметь одинаковое количество столбцов
- Столбцы должны иметь те же типы данных в том же порядке, что и первая таблица
Хотя имена столбцов не обязательно должны совпадать, вы обнаружите, что обычно они совпадают. Это связано с тем, что в большинстве случаев, когда вы хотите использовать UNION
, необходимо сшивать вместе разные части одного и того же набора данных (как в данном случае).
Поскольку вы пишете два отдельных оператора SELECT
, вы можете обрабатывать их по-разному перед добавлением. Например, вы можете фильтровать их по-разному, используя разные предложения WHERE
.
Оттачивайте свои навыки SQL
Практические задачи
Напишите запрос, который добавляет два набора данных crunchbase_investments
выше (включая повторяющиеся значения). Отфильтруйте первый набор данных только для компаний с именами, начинающимися с буквы «Т», и отфильтруйте второй для компаний с именами, начинающимися с «М» (оба значения не чувствительны к регистру). Включите только столбцы company_permalink
, company_name
и invester_name
.
ПопробуйтеСмотреть ответ
Немного сложнее:
Практическая задача
Напишите запрос, который показывает 3 столбца. Первый указывает, из какого набора данных (часть 1 или 2) взяты данные, второй показывает статус компании, а третий — подсчет количества инвесторов.