PostgreSQL Union, Union ALL esimerkkein

Sisällysluettelo:

Anonim

Mikä on PostgreSQL Union?

PostgreSQL UNION -operaattoria käytetään yhdistämään tulosjoukot useammasta kuin yhdestä SELECT-käskystä yhteen tulosjoukkoon. Kaikki kaksoisrivit SELECT-käskyjen tuloksista poistetaan. UNION-operaattori toimii kahdella ehdolla:

  • SELECT-kyselyjen PITÄÄ palauttaa samanlainen määrä kyselyitä.
  • Kaikkien vastaavien sarakkeiden tietotyyppien on oltava yhteensopivia.

UNION-operaattoria käytetään yleensä yhdistämään tietoja liittyvistä taulukoista, joita ei ole normalisoitu täydellisesti.

Tässä PostgreSQL-opetusohjelmassa opit:

  • Mikä on PostgreSQL Union?
  • Syntaksi
  • liitto
  • Unioni Kaikki
  • TILAA
  • Milloin Unionia ja milloin Union allia käytetään?
  • PgAdminin käyttäminen

Syntaksi

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

Tässä on selitys yllä oleville parametreille:

Lauseke_1, lauseke_2,… lauseke_n ovat laskutoimituksia tai sarakkeita, jotka sinun on haettava.

Taulukot ovat taulukoita, joista sinun on noudettava tietueita.

WHERE-ehdot ovat ehdot, jotka on täytettävä tietueiden noutamiseksi.

Huomaa: Koska UNION-operaattori ei palauta kaksoiskappaleita, UNION DISTINCT: n käytöllä ei ole vaikutusta tuloksiin.

liitto

UNION-operaattori poistaa kaksoiskappaleet. Osoittakaamme tätä.

Meillä on tietokanta nimeltä Demo ja seuraavat taulukot:

Kirja:

Hinta:

Suoritetaan seuraava komento:

SELECT idFROM BookUNIONSELECT idFROM Price;

Komento palauttaa seuraavat:

Tunnussarake näkyy sekä kirja- että hintataulukoissa. Se näkyy kuitenkin vain kerran tuloksessa. Syynä on, että PostgreSQL UNION -operaattori ei palauta kaksoiskappaleita.

Unioni Kaikki

Tämä operaattori yhdistää tulosjoukot useammasta kuin yhdestä SELECT-käskystä poistamatta kaksoiskappaleita. Operaattori vaatii, että jokaisella SELECT-käskyllä ​​on samanlainen määrä kenttiä samanlaisten tietotyyppien tulosjoukoissa.

Syntaksi:

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

Tässä on selitys yllä oleville parametreille:

Lauseke_1, lauseke_2,… lauseke_n ovat laskutoimituksia tai sarakkeita, jotka sinun on haettava.

Taulukot ovat taulukoita, joista sinun on noudettava tietueita.

WHERE-ehdot ovat ehdot, jotka on täytettävä tietueiden noutamiseksi.

Huomaa: Molemmilla lausekkeilla on oltava sama määrä lausekkeita.

Käytämme seuraavia taulukoita:

Kirja:

Hinta:

Suorita seuraava komento:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Sen pitäisi palauttaa seuraava:

Kopioita ei ole poistettu.

TILAA

PostgreSQL UNION -operaattoria voidaan käyttää ORDER BY -lausekkeen kanssa kyselytulosten järjestämiseen. Tämän osoittamiseksi käytämme seuraavia taulukoita:

Hinta:

Hinta2:

Tässä on komento, joka osoittaa, kuinka UNION-operaattoria käytetään yhdessä ORDER BY -lausekkeen kanssa:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

Komento palauttaa seuraavat:

Tietueet järjestettiin hintasarakkeen mukaan. Lauseke järjestää tietueet oletusarvoisesti nousevassa järjestyksessä. Jos haluat tilata ne laskevassa järjestyksessä, lisää DESC-lause seuraavasti:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Komento palauttaa seuraavat:

Tietueet on järjestetty hintasarakkeen perusteella laskevassa järjestyksessä.

Milloin Unionia ja milloin Union allia käytetään?

Käytä UNION-operaattoria, kun sinulla on useita samanlaisen taulukon taulukoita, jotka on jaettu syystä. On hyvä, kun sinun on poistettava / poistettava päällekkäiset tietueet.

Käytä UNION ALL -operaattoria, kun sinun ei tarvitse poistaa tai poistaa kaksoiskappaleita.

PgAdminin käyttäminen

Katsotaan nyt, kuinka kaikki kolme toimintoa suoritettiin pgAdminin avulla.

liitto

Voit tehdä saman pgAdminin avulla seuraavasti:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta siirtymispalkista Tietokannat.
  2. Napsauta Demo.

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Vaihe 4) Napsauta Suorita-painiketta.

Sen pitäisi palauttaa seuraava:

Unioni Kaikki

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2)

  1. Valitse vasemmalla olevasta siirtymispalkista Tietokannat.
  2. Napsauta Demo.

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Vaihe 4) Napsauta Suorita-painiketta.

Sen pitäisi palauttaa seuraava:

TILAA

UNION ALL -operaattori voidaan yhdistää ORDER BY -lausekkeeseen tulosten järjestämiseksi tulosjoukossa. Esimerkiksi:

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

Komento palauttaa seuraavat:

Tulokset on tilattu.

Yhteenveto:

  • PostgreSQL UNION -operaattori yhdistää useamman kuin yhden SELECT-käskyn tulokset yhdeksi tulosjoukoksi.
  • UNION-operaattori ei palauta kaksoiskappaleita.
  • Jos haluat tilata tulokset, yhdistä se ORDER BY -lausekkeeseen.
  • UNION ALL -käyttäjä yhdistää useamman kuin yhden SELECT-käskyn tulokset yhteen tulosarjaan.
  • UNION ALL -operaattori ei poista kaksoiskappaleita.

Lataa tässä opetusohjelmassa käytetty tietokanta