PostgreSQL Союз, Союз ВСЕХ с примерами

Что такое PostgreSQL Союз?

The PostgreSQL Оператор UNION используется для объединения наборов результатов из более чем одного оператора SELECT в один набор результатов. Любые дублирующиеся строки из результатов операторов SELECT удаляются. Оператор UNION работает при двух условиях:

  • Запросы SELECT ДОЛЖНЫ возвращать одинаковое количество запросов.
  • Типы данных всех соответствующих столбцов должны быть совместимыми.

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

Синтаксис

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Вот объяснение вышеуказанных параметров:

Выражение_1, выражение_2,… выражение_n — это вычисления или столбцы, которые вам нужно получить.

Таблицы — это таблицы, из которых вам нужно извлечь записи.

Условия WHERE — это условия, которые должны быть выполнены для получения записей.

Примечание. Поскольку оператор UNION не возвращает дубликаты, использование UNION DISTINCT не повлияет на результаты.

PostgreSQL Союз

Оператор UNION удаляет дубликаты. Давайте продемонстрируем это.

У нас есть база данных Demo со следующими таблицами:

Книга:

PostgreSQL Союз

Цена:

PostgreSQL Союз

Давайте запустим следующую команду:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Команда вернет следующее:

PostgreSQL Союз

Столбец «Идентификатор» отображается как в таблице «Книга», так и в таблице «Цены». Однако в результате оно появляется только один раз. Причина в том, что PostgreSQL Оператор UNION не возвращает дубликаты.

PostgreSQL Союз Все

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

Синтаксис:

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION ALL
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Вот объяснение вышеуказанных параметров:

Выражение_1, выражение_2,… выражение_n — это вычисления или столбцы, которые вам нужно получить.

Таблицы — это таблицы, из которых вам нужно извлечь записи.

Условия WHERE — это условия, которые должны быть выполнены для получения записей.

Примечание. Оба выражения должны содержать одинаковое количество выражений.

Мы будем использовать следующие таблицы:

Книга:

PostgreSQL Союз Все

Цена:

PostgreSQL Союз Все

Выполните следующую команду:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Он должен вернуть следующее:

PostgreSQL Союз Все

Дубликаты не удалены.

СОРТИРОВАТЬ ПО

The PostgreSQL Оператор UNION может использоваться вместе с предложением ORDER BY для упорядочивания результатов запроса. Чтобы продемонстрировать это, мы будем использовать следующие таблицы:

Цена:

СОРТИРОВАТЬ ПО

Цена2:

СОРТИРОВАТЬ ПО

Вот команда, которая демонстрирует, как использовать оператор UNION вместе с предложением ORDER BY:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price;

Команда вернет следующее:

СОРТИРОВАТЬ ПО

Записи были упорядочены по столбцу цен. По умолчанию это предложение упорядочивает записи в порядке возрастания. Чтобы упорядочить их в порядке убывания, добавьте предложение DESC, как показано ниже:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Команда вернет следующее:

СОРТИРОВАТЬ ПО

Записи упорядочены по столбцу цен в порядке убывания.

Когда использовать Union и когда использовать Union all?

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

Используйте оператор UNION ALL, если вам не нужно удалять повторяющиеся записи.

Использование pgAdmin

Теперь посмотрим, как все три действия выполняются с помощью pgAdmin.

Как использовать PostgreSQL Объединение с использованием pgAdmin

Ниже приведен пошаговый процесс использования. PostgreSQL Объединение с использованием pgAdmin

Чтобы сделать то же самое через pgAdmin, сделайте следующее:

Шаг 1) Логин
Войдите в свою учетную запись pgAdmin.

Шаг 2) Нажмите «Базы данных».

  1. На панели навигации слева нажмите «Базы данных».
  2. Нажмите Демо.

Используйте PostgreSQL Объединение с использованием pgAdmin

Шаг 3) Введите запрос
Введите запрос в редакторе запросов:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Шаг 4) Нажмите кнопку «Выполнить».
Далее нажмите кнопку «Выполнить». Как показано на изображении ниже.

Используйте PostgreSQL Объединение с использованием pgAdmin

Он должен вернуть следующее:

Используйте PostgreSQL Объединение с использованием pgAdmin

Союз Все

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите «Базы данных».
  2. Нажмите Демо.

Используйте PostgreSQL Объединение всех с помощью pgAdmin

Шаг 3) Введите запрос в редакторе запросов:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Шаг 4) Нажмите кнопку «Выполнить».

Используйте PostgreSQL Объединение всех с помощью pgAdmin

Он должен вернуть следующее:

Используйте PostgreSQL Объединение всех с помощью pgAdmin

СОРТИРОВАТЬ ПО

Оператор UNION ALL можно комбинировать с предложением ORDER BY, чтобы упорядочить результаты в наборе результатов. Например:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price
ORDER BY id;

Команда вернет следующее:

Используйте PostgreSQL ЗАКАЗАТЬ ПО с помощью pgAdmin

Результаты заказаны.

Резюме

  • The PostgreSQL Оператор UNION объединяет результаты из более чем одного Оператор SELECT в один набор результатов.
  • Оператор UNION не возвращает повторяющиеся записи.
  • Чтобы упорядочить результаты, объедините его с предложением ORDER BY.
  • Оператор UNION ALL объединяет результаты нескольких операторов SELECT в один набор результатов.
  • Оператор UNION ALL не удаляет дубликаты.

Загрузите базу данных, используемую в этом руководстве.