PostgreSQL Union, Union ALL koos näidetega

Lang L: none (table-of-contents):

Anonim

Mis on PostgreSQL Union?

Operaatorit PostgreSQL UNION kasutatakse tulemuste komplektide ühendamiseks rohkem kui ühest SELECT-lauseest üheks tulemuste komplektiks. Kõik SELECT-lausete tulemuste duplikaatread kõrvaldatakse. UNIONi operaator töötab kahel tingimusel:

  • SELECT-päringud PEAVAD tagastama sarnase arvu päringuid.
  • Kõigi vastavate veergude andmetüübid peavad olema ühilduvad.

Operaatorit UNION kasutatakse tavaliselt seotud tabelite andmete kombineerimiseks, mis pole ideaalselt normaliseeritud.

Selles PostgreSQL-i õpetuses saate teada:

  • Mis on PostgreSQL Union?
  • Süntaks
  • Liit
  • Liit Kõik
  • TELLI
  • Millal kasutada liitu ja millal kasutada kõiki liitu?
  • PgAdmini kasutamine

Süntaks

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];

Siin on ülaltoodud parameetrite selgitus:

Avaldis_1, avaldis_2, ... avaldis_n on arvutused või veerud, mille peate alla laadima.

Tabelid on tabelid, millest peate kirjeid hankima.

WHERE tingimus (ed) on tingimused, mis peavad olema täidetud, et kirjeid kätte saada.

Märkus: kuna UNIONi operaator ei tagasta duplikaate, ei mõjuta UNION DISTINCT kasutamine tulemusi.

Liit

Operaator UNION eemaldab duplikaadid. Demonstreerigem seda.

Meil on andmebaas nimega Demo koos järgmiste tabelitega:

Raamat:

Hind:

Käivitame järgmise käsu:

SELECT idFROM BookUNIONSELECT idFROM Price;

Käsk tagastab järgmise:

Veerg ID kuvatakse nii tabelites Raamat kui ka Hind. Kuid see ilmub tulemuses ainult üks kord. Põhjus on see, et PostgreSQL UNIONi operaator ei tagasta duplikaate.

Liit Kõik

See operaator ühendab tulemuste komplektid mitmest SELECT lausest ilma duplikaate eemaldamata. Operaator nõuab, et igas SELECT-lauses oleks sarnaste andmetüüpide tulemuste komplektides sarnane arv välju.

Süntaks:

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];

Siin on ülaltoodud parameetrite selgitus:

Avaldis_1, avaldis_2, ... avaldis_n on arvutused või veerud, mille peate alla laadima.

Tabelid on tabelid, millest peate kirjeid hankima.

WHERE tingimus (ed) on tingimused, mis peavad olema täidetud, et kirjeid kätte saada.

Märkus. Mõlemal avaldisel peab olema võrdne arv väljendeid.

Kasutame järgmisi tabeleid:

Raamat:

Hind:

Käivitage järgmine käsk:

SELECT idFROM BookUNION ALLSELECT idFROM price;

See peaks tagastama järgmise:

Duplikaate pole eemaldatud.

TELLI

Operaatorit PostgreSQL UNION saab päringutulemuste tellimiseks kasutada koos klausliga ORDER BY. Selle näitamiseks kasutame järgmisi tabeleid:

Hind:

Hind2:

Siin on käsk, mis näitab operaatori UNION kasutamist koos klausliga ORDER BY:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Käsk tagastab järgmise:

Plaadid järjestati hinna veeru järgi. Klausel järjestab kirjed vaikimisi kasvavas järjekorras. Nende järjestamiseks kahanevas järjekorras lisage DESC-klausel, nagu allpool näidatud:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Käsk tagastab järgmise:

Kirjed on tellitud hinna veeru põhjal kahanevas järjekorras.

Millal kasutada liitu ja millal kasutada kõiki liitu?

Kasutage operaatorit UNION, kui teil on mitu sarnase ülesehitusega tabelit, kuid põhjusel jagatud. See on hea, kui peate duplikaadikirjed eemaldama / kõrvaldama.

Kasutage operaatorit UNION ALL, kui te ei pea dubleerivaid kirjeid eemaldama / kõrvaldama.

PgAdmini kasutamine

Nüüd vaatame, kuidas kõik kolm toimingut pgAdmini abil toimisid.

Liit

Sama saavutamiseks pgAdmini kaudu tehke seda:

Samm 1) Logige sisse oma pgAdmini kontole.

2. samm)

  1. Vasakul navigeerimisribal klõpsake käsku Andmebaasid.
  2. Klõpsake valikul Demo.

Samm 3) Sisestage päring päringiredaktorisse:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Samm 4) Klõpsake nuppu Execute.

See peaks tagastama järgmise:

Liit Kõik

Samm 1) Logige sisse oma pgAdmini kontole.

2. samm)

  1. Klõpsake vasakul navigeerimisribal valikut Andmebaasid.
  2. Klõpsake valikul Demo.

Samm 3) Sisestage päring päringiredaktorisse:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Samm 4) Klõpsake nuppu Execute.

See peaks tagastama järgmise:

TELLI

Operaatorit UNION ALL saab tulemuste tellimiseks tulemusekomplekti kombineerida klausliga ORDER BY. Näiteks:

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Käsk tagastab järgmise:

Tulemused on tellitud.

Kokkuvõte:

  • Operaator PostgreSQL UNION ühendab rohkem kui ühe SELECT-lause tulemused ühte tulemustekomplekti.
  • Operaator UNION ei tagasta duplikaadikirjeid.
  • Tulemuste tellimiseks ühendage see klausliga ORDER BY.
  • Operaator UNION ALL ühendab mitme tulemuste komplekti ühte SELECT-lause tulemust.
  • Operaator UNION ALL ei eemalda duplikaate.

Laadige alla selles õpetuses kasutatud andmebaas