PostgreSQL Unire, Unire TOATE cu Exemple

โšก Rezumat inteligent

PostgreSQL UNION combinฤƒ rezultatele a douฤƒ sau mai multe instrucศ›iuni SELECT รฎntr-un singur set de rezultate ศ™i eliminฤƒ rรขndurile duplicate, รฎn timp ce UNION ALL pฤƒstreazฤƒ fiecare rรขnd, oferind o opศ›iune mai rapidฤƒ atunci cรขnd duplicatele nu conteazฤƒ.

  • ๐Ÿ”— Combina: UNION รฎmbinฤƒ rรขndurile din mai multe instrucศ›iuni SELECT รฎntr-un singur set de rezultate.
  • ๐Ÿงน Duplicate: UNION eliminฤƒ rรขndurile duplicate, รฎn timp ce UNION ALL pฤƒstreazฤƒ fiecare rรขnd corespondent.
  • ๐Ÿ“ reguli: Fiecare instrucศ›iune SELECT trebuie sฤƒ returneze acelaศ™i numฤƒr de coloane cu tipuri de date compatibile.
  • โ†•๏ธ COMANDA PENTRU: O singurฤƒ comandฤƒ ORDER BY la sfรขrศ™it sorteazฤƒ setul de rezultate combinate.
  • โšก Performanศ›ฤƒ: UNION ALL ruleazฤƒ mai rapid deoarece omite pasul de eliminare a duplicatelor.
  • ๐Ÿค– Ajutor AI: Asistenศ›ii inteligenศ›i artificiali aliniazฤƒ coloanele ศ™i aleg รฎntre UNION ศ™i UNION ALL.

PostgreSQL UNIRE ศ™i UNIRE TOศšI

Ce Este PostgreSQL Uniune?

PostgreSQL Operatorul UNION este folosit pentru a combina seturi de rezultate din mai multe instrucศ›iuni SELECT รฎntr-un singur set de rezultate. Orice rรขnduri duplicate din rezultatele instrucศ›iunilor SELECT sunt eliminate. Operatorul UNION lucreazฤƒ รฎn douฤƒ condiศ›ii:

  • Interogฤƒrile SELECT trebuie sฤƒ returneze acelaศ™i numฤƒr de coloane.
  • Tipurile de date ale tuturor coloanelor corespunzฤƒtoare trebuie sฤƒ fie compatibile.

Operatorul UNION este utilizat รฎn mod normal pentru a combina date din tabele รฎnrudite care nu au fost normalizate perfect.

Sintaxฤƒ

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)];

Iatฤƒ o explicaศ›ie pentru parametrii de mai sus:

Expresia_1, expresia_2, โ€ฆ expresia_n sunt calculele sau coloanele pe care trebuie sฤƒ le regฤƒsiศ›i.

Tabelele sunt tabelele din care trebuie sฤƒ recuperaศ›i รฎnregistrฤƒrile.

Condiศ›ia(ele) WHERE sunt condiศ›iile care trebuie รฎndeplinite pentru ca รฎnregistrฤƒrile sฤƒ fie recuperate.

Notฤƒ: รŽntrucรขt operatorul UNION nu returneazฤƒ duplicate, utilizarea operatorului UNION DISTINCT nu va avea niciun impact asupra rezultatelor.

PostgreSQL Uniune

Operatorul UNION eliminฤƒ duplicatele, รฎn acelaศ™i mod รฎn care SELECTARE DISTINCT face. Sฤƒ demonstrฤƒm acest lucru. Avem o bazฤƒ de date numitฤƒ Demo cu urmฤƒtoarele tabele:

Carte:

PostgreSQL Uniune

Preศ›:

PostgreSQL Uniune

Sฤƒ rulฤƒm urmฤƒtoarea comandฤƒ:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Comanda va returna urmฤƒtoarele:

PostgreSQL Uniune

Coloana ID apare atรขt รฎn โ€‹โ€‹carte, cรขt ศ™i รฎn tabelul de preศ›uri. Cu toate acestea, apare o singurฤƒ datฤƒ รฎn rezultat. Motivul este cฤƒ PostgreSQL Operatorul UNION nu returneazฤƒ duplicate.

PostgreSQL Unirea Toate

Acest operator combinฤƒ seturi de rezultate din mai multe instrucศ›iuni SELECT fฤƒrฤƒ a elimina duplicatele. Operatorul solicitฤƒ ca fiecare instrucศ›iune SELECT sฤƒ aibฤƒ un numฤƒr similar de cรขmpuri รฎn seturi de rezultate de tipuri de date similare.

Sintaxฤƒ:

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)];

Iatฤƒ o explicaศ›ie pentru parametrii de mai sus:

Expresia_1, expresia_2, โ€ฆ expresia_n sunt calculele sau coloanele pe care trebuie sฤƒ le regฤƒsiศ›i.

Tabelele sunt tabelele din care trebuie sฤƒ recuperaศ›i รฎnregistrฤƒrile.

Condiศ›ia(ele) WHERE sunt condiศ›iile care trebuie รฎndeplinite pentru ca รฎnregistrฤƒrile sฤƒ fie recuperate.

Notฤƒ: Ambele instrucศ›iuni SELECT trebuie sฤƒ aibฤƒ un numฤƒr egal de expresii.

Vom folosi urmฤƒtoarele tabele:

Carte:

PostgreSQL Unirea Toate

Preศ›:

PostgreSQL Unirea Toate

Rulaศ›i urmฤƒtoarea comandฤƒ:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Ar trebui sฤƒ returneze urmฤƒtoarele:

PostgreSQL Unirea Toate

Dublatele nu au fost eliminate.

COMANDA DE

PostgreSQL Operatorul UNION poate fi folosit รฎmpreunฤƒ cu clauza ORDER BY pentru a ordona rezultatele interogฤƒrii. Pentru a demonstra acest lucru, vom folosi urmฤƒtoarele tabele:

Preศ›:

COMANDA DE

Preศ› 2:

COMANDA DE

Iatฤƒ comanda care demonstreazฤƒ cum se utilizeazฤƒ operatorul UNION รฎmpreunฤƒ cu clauza ORDER BY:

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

Comanda va returna urmฤƒtoarele:

COMANDA DE

รŽnregistrฤƒrile au fost ordonate dupฤƒ coloana preศ›. Clauza ordoneazฤƒ รฎn mod implicit รฎnregistrฤƒrile รฎn ordine crescฤƒtoare. Pentru a le ordona รฎn ordine descrescฤƒtoare, adฤƒugaศ›i clauza DESC aศ™a cum se aratฤƒ mai jos:

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

Comanda va returna urmฤƒtoarele:

COMANDA DE

รŽnregistrฤƒrile au fost ordonate pe baza coloanei de preศ› รฎn ordine descrescฤƒtoare.

Cรขnd se foloseศ™te Union ศ™i cรขnd se foloseศ™te Union All?

Foloseศ™te operatorul UNION atunci cรขnd ai mai multe tabele cu o structurฤƒ similarฤƒ, dar divizate dintr-un anumit motiv. Este util atunci cรขnd trebuie sฤƒ elimini sau sฤƒ elimini รฎnregistrฤƒri duplicate.

Utilizaศ›i operatorul UNION ALL atunci cรขnd nu trebuie sฤƒ eliminaศ›i sau sฤƒ eliminaศ›i รฎnregistrฤƒri duplicate.

Folosind pgAdmin

Acum sฤƒ vedem cum sunt efectuate toate cele trei acศ›iuni folosind pgAdmin.

Instrucศ›iuni de utilizare PostgreSQL Unirea folosind pgAdmin

Mai jos este un proces pas cu pas despre cum se utilizeazฤƒ PostgreSQL UNION prin pgAdmin:

Pas 1) Conectaศ›i-vฤƒ la contul dvs. pgAdmin.

Pas 2) Din bara de navigare din stรขnga, faceศ›i clic pe Baze de date, apoi pe Demo.

Utilizare PostgreSQL Unirea folosind pgAdmin

Pas 3) Introduceศ›i interogarea รฎn editorul de interogฤƒri:

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

Pas 4) Faceศ›i clic pe butonul Execute.

Utilizare PostgreSQL Unirea folosind pgAdmin

Ar trebui sฤƒ returneze urmฤƒtoarele:

Utilizare PostgreSQL Unirea folosind pgAdmin

Unirea Toate

Pas 1) Conectaศ›i-vฤƒ la contul dvs. pgAdmin.

Pas 2) Din bara de navigare din stรขnga, faceศ›i clic pe Baze de date, apoi pe Demo.

Utilizare PostgreSQL Unirea tuturor utilizรขnd pgAdmin

Pas 3) Introduceศ›i interogarea รฎn editorul de interogฤƒri:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Pas 4) Faceศ›i clic pe butonul Execute.

Utilizare PostgreSQL Unirea tuturor utilizรขnd pgAdmin

Ar trebui sฤƒ returneze urmฤƒtoarele:

Utilizare PostgreSQL Unirea tuturor utilizรขnd pgAdmin

COMANDA DE

Operatorul UNION ALL poate fi combinat cu clauza ORDER BY pentru a ordona rezultatele รฎn setul de rezultate. De exemplu:

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

Comanda va returna urmฤƒtoarele:

Utilizare PostgreSQL COMANDA PRIN Folosind pgAdmin

Rezultatele au fost ordonate.

Descฤƒrcaศ›i baza de date folositฤƒ รฎn acest tutorial

รŽntrebฤƒri frecvente

UNION ALL este mai rapidฤƒ deoarece concateneazฤƒ pur ศ™i simplu rรขndurile. UNION trebuie sฤƒ sorteze sau sฤƒ execute hashing pentru a elimina duplicatele, ceea ce adaugฤƒ o sarcinฤƒ suplimentarฤƒ. Cรขnd duplicatele nu conteazฤƒ, UNION ALL este alegerea mai eficientฤƒ.

Da. Fiecare SELECT dintr-o UNION trebuie sฤƒ returneze acelaศ™i numฤƒr de coloane, iar coloanele corespondente trebuie sฤƒ aibฤƒ tipuri de date compatibile รฎn aceeaศ™i ordine. รŽn caz contrar PostgreSQL genereazฤƒ o eroare ศ™i interogarea eศ™ueazฤƒ.

Da. Numele coloanelor pot diferi deoarece UNION potriveศ™te coloanele dupฤƒ poziศ›ie, nu dupฤƒ nume. Tipurile de date trebuie sฤƒ fie รฎn continuare compatibile, iar setul de rezultate utilizeazฤƒ numele coloanelor din prima instrucศ›iune SELECT.

O operaศ›ie UNION stivuieศ™te rรขndurile a douฤƒ seturi de rezultate pe verticalฤƒ รฎntr-o singurฤƒ listฤƒ de coloane, eliminรขnd duplicatele. O operaศ›ie JOIN combinฤƒ coloane din tabele diferite pe orizontalฤƒ pe baza unei chei corelate, astfel รฎncรขt lฤƒrgeศ™te rรขndurile รฎn loc sฤƒ le adauge.

ORDER BY sorteazฤƒ rezultatul final combinat, astfel รฎncรขt PostgreSQL permite plasarea unei singure instrucศ›iuni ORDER BY dupฤƒ ultima instrucศ›iune SELECT. Sortarea mai รฎntรขi a interogฤƒrilor individuale ar fi lipsitฤƒ de sens odatฤƒ ce rรขndurile lor sunt รฎmbinate.

Asistenศ›ii de inteligenศ›ฤƒ artificialฤƒ, precum GitHub Copilot, aliniazฤƒ listele de coloane ale fiecฤƒrui SELECT, semnaleazฤƒ tipurile de date nepotrivite ศ™i recomandฤƒ UNION sau UNION ALL รฎn funcศ›ie de pฤƒstrarea duplicatelor, reducรขnd erorile frecvente รฎn interogฤƒri.

Da. Examinรขnd tabelele ศ™i obiectivul, un asistent cu inteligenศ›ฤƒ artificialฤƒ poate stabili dacฤƒ rรขndurile duplicate sunt posibile ศ™i relevante, apoi poate sugera UNION ALL atunci cรขnd duplicatele sunt acceptabile pentru a cรขศ™tiga vitezฤƒ sau UNION atunci cรขnd acestea trebuie eliminate.

UNION returneazฤƒ rรขndurile gฤƒsite รฎn oricare dintre interogฤƒri. INTERSECT returneazฤƒ doar rรขndurile prezente รฎn ambele interogฤƒri, iar EXCEPT returneazฤƒ rรขndurile din prima interogare, dar nu ศ™i din a doua. Toate trei eliminฤƒ duplicatele รฎn mod implicit.

Rezumaศ›i aceastฤƒ postare cu: