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 със следните таблици:
Книга:
Цена:
Нека изпълним следната команда:
SELECT id FROM Book UNION SELECT id FROM Price;
Командата ще върне следното:
Колоната за 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 са условията, които трябва да бъдат изпълнени, за да могат записите да бъдат извлечени.
Забележка: И двата израза трябва да имат еднакъв брой изрази.
Ще използваме следните таблици:
Книга:
Цена:
Изпълнете следната команда:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Трябва да върне следното:
Дубликатите не са премахнати.
ПОДРЕДЕНИ ПО
- 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;
Командата ще върне следното:
Резултатите са подредени.
Oбобщение
- - PostgreSQL Операторът UNION комбинира резултати от повече от един SELECT израз в един набор от резултати.
- Операторът UNION не връща дублирани записи.
- За да подредите резултатите, комбинирайте го с клаузата ORDER BY.
- Операторът UNION ALL комбинира резултати от повече от един оператор SELECT в един набор от резултати.
- Операторът UNION ALL не премахва дубликати.
Изтеглете базата данни, използвана в този урок