PostgreSQL Union, Union ALL cu exemple

Cuprins:

Anonim

Ce este PostgreSQL Union?

Operatorul PostgreSQL UNION este utilizat pentru combinarea seturilor 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 un număr similar de interogări.
  • 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 conexe care nu au fost normalizate perfect.

În acest tutorial PostgreSQL, veți învăța:

  • Ce este PostgreSQL Union?
  • Sintaxă
  • Uniune
  • Uniunea Toate
  • COMANDA DE
  • Când se folosește Union și când se folosește Union toate?
  • Folosind pgAdmin

Sintaxă

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM 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 preluați.

Tabelele sunt tabelele din care trebuie să preluați înregistrări.

Condițiile WHERE sunt condițiile care trebuie îndeplinite pentru ca înregistrările să fie recuperate.

Notă: din moment ce operatorul UNION nu returnează duplicate, utilizarea UNION DISTINCT nu va avea niciun impact asupra rezultatelor.

Uniune

Operatorul UNION elimină duplicatele. Să demonstrăm acest lucru.

Avem o bază de date denumită Demo cu următoarele tabele:

Carte:

Preț:

Să executăm următoarea comandă:

SELECT idFROM BookUNIONSELECT idFROM Price;

Comanda va returna următoarele:

Coloana id apare atât în ​​tabelele de carte, cât și în cele de prețuri. Cu toate acestea, apare o singură dată în rezultat. Motivul este că operatorul PostgreSQL UNION nu returnează duplicate.

Uniunea Toate

Acest operator combină seturile de rezultate din mai multe instrucțiuni SELECT fără a elimina duplicatele. Operatorul necesită ca fiecare instrucțiune SELECT să aibă un număr similar de câmpuri în seturile de rezultate de tipuri de date similare.

Sintaxă:

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM 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 preluați.

Tabelele sunt tabelele din care trebuie să preluați înregistrări.

Condițiile WHERE sunt condițiile care trebuie îndeplinite pentru ca înregistrările să fie recuperate.

Notă: Ambele expresii trebuie să aibă un număr egal de expresii.

Vom folosi următoarele tabele:

Carte:

Preț:

Rulați următoarea comandă:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Ar trebui să returneze următoarele:

Duplicatele nu au fost eliminate.

COMANDA DE

Operatorul PostgreSQL UNION poate fi utilizat împreună cu clauza ORDER BY pentru a comanda rezultatele interogării. Pentru a demonstra acest lucru, vom folosi următoarele tabele:

Preț:

Preț2:

Iată comanda care demonstrează cum se folosește operatorul UNION împreună cu clauza ORDER BY:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Comanda va returna următoarele:

Înregistrările au fost comandate de coloana prețurilor. 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 PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Comanda va returna următoarele:

Înregistrările au fost comandate pe baza coloanei de preț în ordine descrescătoare.

Când se folosește Union și când se folosește Union toate?

Utilizați operatorul UNION atunci când aveți mai multe tabele cu o structură similară, dar împărțite dintr-un motiv. Este bine când trebuie să eliminați / eliminați înregistrările duplicat.

Utilizați operatorul UNION ALL atunci când nu este nevoie să eliminați / eliminați înregistrările duplicate.

Folosind pgAdmin

Acum să vedem cum s-au efectuat toate cele trei acțiuni folosind pgAdmin.

Uniune

Pentru a realiza același lucru prin pgAdmin, procedați astfel:

Pasul 1) Conectați-vă la contul dvs. pgAdmin.

Pasul 2)

  1. Din bara de navigare din stânga - Faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Pasul 3) Tastați interogarea în editorul de interogări:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Pasul 4) Faceți clic pe butonul Executare.

Ar trebui să returneze următoarele:

Uniunea Toate

Pasul 1) Conectați-vă la contul dvs. pgAdmin.

Pasul 2)

  1. Din bara de navigare din stânga, faceți clic pe Baze de date.
  2. Faceți clic pe Demo.

Pasul 3) Tastați interogarea în editorul de interogări:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Pasul 4) Faceți clic pe butonul Executare.

Ar trebui să returneze următoarele:

COMANDA DE

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

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Comanda va returna următoarele:

Rezultatele au fost ordonate.

Rezumat:

  • Operatorul PostgreSQL UNION combină rezultatele din mai multe instrucțiuni SELECT într-un singur set de rezultate.
  • Operatorul UNION nu returnează înregistrări duplicate.
  • Pentru a comanda rezultatele, combinați-le cu clauza ORDER BY.
  • Operatorul UNION ALL combină rezultatele din mai multe instrucțiuni SELECT într-un singur set de rezultate.
  • Operatorul UNION ALL nu elimină duplicatele.

Descărcați baza de date utilizată în acest tutorial