PostgreSQL Union, Union ALL s primeri

Kazalo:

Anonim

Kaj je PostgreSQL Union?

Operator PostgreSQL UNION se uporablja za kombiniranje naborov rezultatov iz več stavkov SELECT v en nabor rezultatov. Vse podvojene vrstice iz rezultatov stavkov SELECT se izločijo. Operater UNION deluje pod dvema pogojema:

  • Poizvedbe SELECT MORAJO vrniti podobno število poizvedb.
  • Podatkovni tipi vseh ustreznih stolpcev morajo biti združljivi.

Operator UNION se običajno uporablja za kombiniranje podatkov iz sorodnih tabel, ki niso bili popolnoma normalizirani.

V tej vadnici PostgreSQL boste izvedeli:

  • Kaj je PostgreSQL Union?
  • Sintaksa
  • Unije
  • Union All
  • NAROČITE PO
  • Kdaj uporabiti Union in Kdaj uporabiti Union all?
  • Uporaba pgAdmin

Sintaksa

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

Tu je razlaga za zgornje parametre:

Izraz_1, izraz_2, ... izraz_n so izračuni ali stolpci, ki jih morate pridobiti.

Tabele so tabele, iz katerih morate pridobiti zapise.

Pogoji WHERE so pogoji, ki morajo biti izpolnjeni za pridobivanje zapisov.

Opomba: ker operater UNION ne vrne dvojnikov, uporaba UNION DISTINCT ne bo vplivala na rezultate.

Unije

Operator UNION odstrani dvojnike. Pokažimo to.

Imamo zbirko podatkov z imenom Demo z naslednjimi tabelami:

Knjiga:

Cena:

Zaženimo naslednji ukaz:

SELECT idFROM BookUNIONSELECT idFROM Price;

Ukaz bo vrnil naslednje:

Stolpec id je prikazan v tabelah Book in Price. Vendar se v rezultatu prikaže le enkrat. Razlog je v tem, da operater PostgreSQL UNION ne vrne dvojnikov.

Union All

Ta operater združuje nabore rezultatov iz več kot enega stavka SELECT, ne da bi odstranil dvojnike. Operator zahteva, da ima vsak stavek SELECT podobno število polj v naborih rezultatov podobnih podatkovnih tipov.

Sintaksa:

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

Tu je razlaga za zgornje parametre:

Izraz_1, izraz_2, ... izraz_n so izračuni ali stolpci, ki jih morate pridobiti.

Tabele so tabele, iz katerih morate pridobiti zapise.

Pogoji WHERE so pogoji, ki morajo biti izpolnjeni za pridobivanje zapisov.

Opomba: Oba izraza morata imeti enako število izrazov.

Uporabili bomo naslednje tabele:

Knjiga:

Cena:

Zaženite naslednji ukaz:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Vrniti mora naslednje:

Dvojniki niso bili odstranjeni.

NAROČITE PO

Operator PostgreSQL UNION lahko uporabite skupaj s stavkom ORDER BY za razvrščanje rezultatov poizvedbe. Za prikaz tega bomo uporabili naslednje tabele:

Cena:

Cena2:

Tu je ukaz, ki prikazuje, kako uporabljati operater UNION skupaj s stavkom ORDER BY:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Ukaz bo vrnil naslednje:

Zapisi so bili razvrščeni po stolpcu s cenami. Klavzula privzeto ureja zapise v naraščajočem vrstnem redu. Če jih želite naročiti v padajočem vrstnem redu, dodajte klavzulo DESC, kot je prikazano spodaj:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Ukaz bo vrnil naslednje:

Zapisi so razvrščeni na podlagi stolpca s cenami v padajočem vrstnem redu.

Kdaj uporabiti Union in Kdaj uporabiti Union all?

Uporabite operator UNION, če imate več tabel s podobno strukturo, vendar razdeljene z razlogom. Dobro je, če morate odstraniti / odstraniti podvojene zapise.

Uporabite operator UNION ALL, kadar vam ni treba odstraniti / odstraniti podvojenih zapisov.

Uporaba pgAdmin

Zdaj pa poglejmo, kako so bila vsa tri dejanja izvedena s pomočjo pgAdmin.

Unije

Če želite to storiti s pomočjo pgAdmin, naredite to:

Korak 1) Prijavite se v svoj račun pgAdmin.

2. korak)

  1. V navigacijski vrstici na levi strani kliknite Baze podatkov.
  2. Kliknite Demo.

3. korak) Vnesite poizvedbo v urejevalnik poizvedb:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Korak 4) Kliknite gumb Izvedi.

Vrniti mora naslednje:

Union All

Korak 1) Prijavite se v svoj račun pgAdmin.

2. korak)

  1. V navigacijski vrstici na levi strani kliknite Baze podatkov.
  2. Kliknite Demo.

3. korak) Vnesite poizvedbo v urejevalnik poizvedb:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Korak 4) Kliknite gumb Izvedi.

Vrniti mora naslednje:

NAROČITE PO

Operator UNION ALL lahko kombinirate s klavzulo ORDER BY, da naročite rezultate v naboru rezultatov. Na primer:

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Ukaz bo vrnil naslednje:

Rezultati so naročeni.

Povzetek:

  • Operator PostgreSQL UNION združuje rezultate iz več kot enega stavka SELECT v en nabor rezultatov.
  • Operator UNION ne vrne podvojenih zapisov.
  • Če želite naročiti rezultate, jo združite s stavkom ORDER BY.
  • Operator UNION ALL združi rezultate iz več stavkov SELECT v en niz rezultatov.
  • Operator UNION ALL ne odstranjuje dvojnikov.

Prenesite zbirko podatkov, uporabljeno v tej vadnici