PostgreSQL Unioni, unioni KAIKKI esimerkkeineen
⚡ Älykäs yhteenveto
PostgreSQL UNION yhdistää kahden tai useamman SELECT-lausekkeen tulokset yhdeksi tulosjoukoksi ja poistaa kaksoiskappaleet, kun taas UNION ALL säilyttää kaikki rivit, mikä on nopeampi vaihtoehto, kun kaksoiskappaleilla ei ole merkitystä.
Mikä on PostgreSQL Liitto?
PostgreSQL UNION-operaattoria käytetään useamman kuin yhden SELECT-lauseen tulosjoukkojen yhdistämiseen yhdeksi tulosjoukoksi. Kaikki päällekkäiset rivit SELECT-lausekkeiden tuloksista poistetaan. UNION-operaattori toimii kahdella ehdolla:
- SELECT-kyselyiden on palautettava sama määrä sarakkeita.
- Kaikkien vastaavien sarakkeiden tietotyyppien on oltava yhteensopivia.
UNION-operaattoria käytetään tavallisesti yhdistämään tietoja toisiinsa liittyvistä taulukoista, joita ei ole normalisoitu täydellisesti.
Syntaksi
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Tässä on selitys yllä oleville parametreille:
Lauseke_1, lauseke_2, … lauseke_n ovat laskelmia tai sarakkeita, jotka sinun on noudettava.
Taulukot ovat taulukoita, joista sinun on haettava tietueita.
WHERE-ehdot ovat ehdot, jotka on täytettävä, jotta tietueet voidaan noutaa.
Huomautus: Koska UNION-operaattori ei palauta kaksoiskappaleita, UNION DISTINCT -operaattorin käytöllä ei ole vaikutusta tuloksiin.
PostgreSQL Liitto
UNION-operaattori poistaa kaksoiskappaleet samalla tavalla kuin SELECT DISTINCT tekee. Osoitetaanpa tämä. Meillä on tietokanta nimeltä Demo, jossa on seuraavat taulukot:
Kirja:
Hinta:
Suoritetaan seuraava komento:
SELECT id FROM Book UNION SELECT id FROM Price;
Komento palauttaa seuraavan:
Id-sarake näkyy sekä Kirja- että Hinta-taulukoissa. Se näkyy kuitenkin vain kerran tuloksessa. Syynä on se PostgreSQL UNION-operaattori ei palauta kaksoiskappaleita.
PostgreSQL Unioni Kaikki
Tämä operaattori yhdistää tulosjoukot useammasta kuin yhdestä SELECT-käskystä poistamatta kaksoiskappaleita. Operaattori edellyttää, että jokaisessa SELECT-lauseessa on samanlainen määrä kenttiä samantyyppisissä tulosjoukoissa.
Syntaksi:
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION ALL SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Tässä on selitys yllä oleville parametreille:
Lauseke_1, lauseke_2, … lauseke_n ovat laskelmia tai sarakkeita, jotka sinun on noudettava.
Taulukot ovat taulukoita, joista sinun on haettava tietueita.
WHERE-ehdot ovat ehdot, jotka on täytettävä, jotta tietueet voidaan noutaa.
Huomautus: Molemmissa SELECT-lausekkeissa on oltava yhtä monta lauseketta.
Käytämme seuraavia taulukoita:
Kirja:
Hinta:
Suorita seuraava komento:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Sen pitäisi palauttaa seuraavat tiedot:
Kaksoiskappaleita ei ole poistettu.
TILAUS
PostgreSQL UNION-operaattoria voidaan käyttää yhdessä ORDER BY -lauseen kanssa kyselyn tulosten järjestämiseen. Tämän osoittamiseksi käytämme seuraavia taulukoita:
Hinta:
Hinta2:
Tässä on komento, joka näyttää kuinka UNION-operaattoria käytetään yhdessä ORDER BY -lauseen kanssa:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price;
Komento palauttaa seuraavan:
Tietueet järjestettiin hintasarakkeen mukaan. Lause järjestää tietueet oletusarvoisesti nousevaan järjestykseen. Järjestä ne laskevassa järjestyksessä lisäämällä DESC-lauseke alla olevan kuvan mukaisesti:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Komento palauttaa seuraavan:
Tietueet on järjestetty hintasarakkeen perusteella laskevassa järjestyksessä.
Milloin käyttää Unionia ja milloin käyttää Union All -toimintoa?
Käytä UNION-operaattoria, kun sinulla on useita taulukoita, joilla on samanlainen rakenne, mutta jotka on jaettu jostain syystä. Se on hyvä vaihtoehto, kun sinun on poistettava tai hävitettävä päällekkäisiä tietueita.
Käytä UNION ALL -operaattoria, kun sinun ei tarvitse poistaa tai hävittää päällekkäisiä tietueita.
pgAdminin avulla
Katsotaanpa nyt, miten kaikki kolme toimintoa suoritetaan pgAdminilla.
Kuinka käyttää PostgreSQL Unioni käyttämällä pgAdminia
Seuraavassa on vaiheittainen opas laitteen käyttöön PostgreSQL UNION pgAdminin kautta:
Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.
Vaihe 2) Valitse vasemmalla olevasta navigointipalkista Tietokannat ja sitten Demo.
Vaihe 3) Kirjoita kysely kyselyeditoriin:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Vaihe 4) Napsauta Suorita-painiketta.
Sen pitäisi palauttaa seuraavat tiedot:
Unioni Kaikki
Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.
Vaihe 2) Valitse vasemmalla olevasta navigointipalkista Tietokannat ja sitten Demo.
Vaihe 3) Kirjoita kysely kyselyeditoriin:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Vaihe 4) Napsauta Suorita-painiketta.
Sen pitäisi palauttaa seuraavat tiedot:
TILAUS
UNION ALL -operaattori voidaan yhdistää ORDER BY -lauseeseen, jotta tulokset järjestyvät tulosjoukossa. Esimerkiksi:
SELECT id FROM Book UNION ALL SELECT id FROM price ORDER BY id;
Komento palauttaa seuraavan:
Tulokset on tilattu.
Lataa tässä opetusohjelmassa käytetty tietokanta


















