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 со следующими таблицами:
Книга:
Цена:
Давайте запустим следующую команду:
SELECT id FROM Book UNION SELECT id FROM Price;
Команда вернет следующее:
Столбец «Идентификатор» отображается как в таблице «Книга», так и в таблице «Цены». Однако в результате оно появляется только один раз. Причина в том, что 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 — это условия, которые должны быть выполнены для получения записей.
Примечание. Оба выражения должны содержать одинаковое количество выражений.
Мы будем использовать следующие таблицы:
Книга:
Цена:
Выполните следующую команду:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Он должен вернуть следующее:
Дубликаты не удалены.
СОРТИРОВАТЬ ПО
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) Нажмите «Базы данных».
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос
Введите запрос в редакторе запросов:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Шаг 4) Нажмите кнопку «Выполнить».
Далее нажмите кнопку «Выполнить». Как показано на изображении ниже.
Он должен вернуть следующее:
Союз Все
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Шаг 4) Нажмите кнопку «Выполнить».
Он должен вернуть следующее:
СОРТИРОВАТЬ ПО
Оператор UNION ALL можно комбинировать с предложением ORDER BY, чтобы упорядочить результаты в наборе результатов. Например:
SELECT id FROM Book UNION ALL SELECT id FROM price ORDER BY id;
Команда вернет следующее:
Результаты заказаны.
Резюме
- The PostgreSQL Оператор UNION объединяет результаты из более чем одного Оператор SELECT в один набор результатов.
- Оператор UNION не возвращает повторяющиеся записи.
- Чтобы упорядочить результаты, объедините его с предложением ORDER BY.
- Оператор UNION ALL объединяет результаты нескольких операторов SELECT в один набор результатов.
- Оператор UNION ALL не удаляет дубликаты.
Загрузите базу данных, используемую в этом руководстве.