„PostgreSQL Union“, „Union ALL“ su pavyzdžiais

Turinys:

Anonim

Kas yra „PostgreSQL Union“?

Operatorius „PostgreSQL UNION“ naudojamas derinant rezultatų rinkinius iš daugiau nei vieno SELECT sakinio į vieną rezultatų rinkinį. Pašalintos visos pasikartojančios eilutės iš SELECT sakinių rezultatų. SĄJUNGOS operatorius dirba dviem sąlygomis:

  • SELECT užklausos PRIVALO pateikti panašų užklausų skaičių.
  • Visų atitinkamų stulpelių duomenų tipai turi būti suderinami.

UNION operatorius paprastai naudojamas derinant susijusių lentelių duomenis, kurie nebuvo normalizuoti.

Šioje „PostgreSQL“ pamokoje sužinosite:

  • Kas yra „PostgreSQL Union“?
  • Sintaksė
  • Sąjunga
  • Sąjunga Viskas
  • RŪŠIUOTI PAGAL
  • Kada naudoti „Union“ ir kada naudoti „Union all“?
  • Naudojant pgAdmin

Sintaksė

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

Štai aukščiau pateiktų parametrų paaiškinimas:

Išraiška_1, išraiška_2, ... išraiška_n yra skaičiavimai ar stulpeliai, kuriuos reikia gauti.

Lentelės yra lentelės, iš kurių turite gauti įrašus.

WHERE sąlyga (-os) yra sąlygos, kurių reikia laikytis norint gauti įrašus.

Pastaba: kadangi UNION operatorius negrąžina dublikatų, UNION DISTINCT naudojimas neturės įtakos rezultatams.

Sąjunga

UNION operatorius pašalina dublikatus. Parodykime tai.

Mes turime duomenų bazę pavadinimu Demo su šiomis lentelėmis:

Knyga:

Kaina:

Vykdykime šią komandą:

SELECT idFROM BookUNIONSELECT idFROM Price;

Komanda grąžins:

Stulpelis „ID“ rodomas lentelėse „Knyga“ ir „Kaina“. Tačiau rezultate jis rodomas tik vieną kartą. Priežastis ta, kad „PostgreSQL UNION“ operatorius negrąžina dublikatų.

Sąjunga Viskas

Šis operatorius sujungia rezultatų rinkinius iš daugiau nei vieno SELECT sakinio, nepašalindamas dublikatų. Operatorius reikalauja, kad kiekviename SELECT sakinyje būtų panašus laukų skaičius panašių duomenų tipų rezultatų rinkiniuose.

Sintaksė:

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

Štai aukščiau pateiktų parametrų paaiškinimas:

Išraiška_1, išraiška_2, ... išraiška_n yra skaičiavimai ar stulpeliai, kuriuos reikia gauti.

Lentelės yra lentelės, iš kurių turite gauti įrašus.

WHERE sąlyga (-os) yra sąlygos, kurių reikia laikytis norint gauti įrašus.

Pastaba: Abi išraiškos turi turėti vienodą išraiškų skaičių.

Mes naudosime šias lenteles:

Knyga:

Kaina:

Paleiskite šią komandą:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Tai turėtų grąžinti:

Dublikatai nebuvo pašalinti.

RŪŠIUOTI PAGAL

Operatorius „PostgreSQL UNION“ gali būti naudojamas kartu su sakiniu „ORDER BY“ užklausos rezultatams užsakyti. Norėdami tai parodyti, naudosime šias lenteles:

Kaina:

Kaina2:

Čia yra komanda, parodanti, kaip naudoti UNION operatorių kartu su sąlyga ORDER BY:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Komanda grąžins:

Įrašai buvo išdėstyti pagal kainos stulpelį. Pagal sąlygą sąlyga įrašus nurodo didėjimo tvarka. Norėdami užsisakyti juos mažėjančia tvarka, pridėkite sąlygą DESC, kaip parodyta žemiau:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Komanda grąžins:

Įrašai buvo užsakyti pagal kainos stulpelį mažėjimo tvarka.

Kada naudoti „Union“ ir kada naudoti „Union all“?

Operatorių UNION naudokite, kai turite kelias panašios struktūros lenteles, bet dėl ​​vienos priežasties padalytas. Gerai, kai reikia pašalinti / pašalinti pasikartojančius įrašus.

Jei nereikia pašalinti / pašalinti pasikartojančių įrašų, naudokite operatorių UNION ALL.

Naudojant pgAdmin

Dabar pažiūrėkime, kaip visi trys veiksmai buvo atlikti naudojant „pgAdmin“.

Sąjunga

Norėdami tai padaryti per „pgAdmin“, atlikite tai:

1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.

2 žingsnis)

  1. Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
  2. Spustelėkite Demo.

3 žingsnis. Įveskite užklausą į užklausos redaktorių:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

4 žingsnis) Spustelėkite mygtuką Vykdyti.

Tai turėtų grąžinti:

Sąjunga Viskas

1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.

2 žingsnis)

  1. Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
  2. Spustelėkite Demo.

3 žingsnis. Įveskite užklausą į užklausos redaktorių:

SELECT idFROM BookUNION ALLSELECT idFROM price;

4 žingsnis) Spustelėkite mygtuką Vykdyti.

Tai turėtų grąžinti:

RŪŠIUOTI PAGAL

Operatorius „UNION ALL“ gali būti derinamas su sąlyga „ORDER BY“, kad rezultatų rinkinys būtų užsakytas. Pavyzdžiui:

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Komanda grąžins:

Rezultatai buvo užsakyti.

Santrauka:

  • Operatorius „PostgreSQL UNION“ sujungia daugiau nei vieno SELECT sakinio rezultatus į vieną rezultatų rinkinį.
  • Operatorius UNION negrąžina pasikartojančių įrašų.
  • Norėdami užsisakyti rezultatus, sujunkite jį su sąlyga „ORDER BY“.
  • Operatorius „UNION ALL“ sujungia daugiau nei vieno „SELECT“ sakinio rezultatus į vieną rezultatų rinkinį.
  • Operatorius „UNION ALL“ nepašalina dublikatų.

Atsisiųskite šioje pamokoje naudojamą duomenų bazę