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 премахва дубликати. Нека демонстрираме това.

Имаме база данни с име Demo със следните таблици:

Книга:

PostgreSQL съюз

Цена:

PostgreSQL съюз

Нека изпълним следната команда:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

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

PostgreSQL съюз

Колоната за id се появява както в таблицата „Книга“, така и в таблицата „Цена“. Той обаче се появява само веднъж в резултата. Причината е, че 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

Резултатите са подредени.

Oбобщение

  • - PostgreSQL Операторът UNION комбинира резултати от повече от един SELECT израз в един набор от резултати.
  • Операторът UNION не връща дублирани записи.
  • За да подредите резултатите, комбинирайте го с клаузата ORDER BY.
  • Операторът UNION ALL комбинира резултати от повече от един оператор SELECT в един набор от резултати.
  • Операторът UNION ALL не премахва дубликати.

Изтеглете базата данни, използвана в този урок