PostgreSQL Союз, Союз ВСЕ з прикладами

Що таке PostgreSQL союз?

Команда 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

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

У нас є база даних під назвою Demo з такими таблицями:

Книга:

PostgreSQL Union

Ціна:

PostgreSQL Union

Виконаємо таку команду:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Команда поверне наступне:

PostgreSQL Union

Стовпець ідентифікатора відображається в таблицях «Книга» та «Ціна». Однак у результатах він з’являється лише один раз. Причина в тому, що 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 Союз ус

Дублікати не видалено.

СОРТУВАТИ ЗА

Команда 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

Результати замовлені.

Підсумки

  • Команда PostgreSQL Оператор UNION поєднує результати з кількох Оператор SELECT в один набір результатів.
  • Оператор UNION не повертає повторювані записи.
  • Щоб упорядкувати результати, поєднайте його з пропозицією ORDER BY.
  • Оператор UNION ALL поєднує результати з кількох інструкцій SELECT в один набір результатів.
  • Оператор UNION ALL не видаляє дублікати.

Завантажте базу даних, яка використовується в цьому посібнику