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)
- Valitse vasemmalla olevasta siirtymispalkista Tietokannat.
- 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)
- Valitse vasemmalla olevasta siirtymispalkista Tietokannat.
- 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