SQL tarjoaa meille UNION-operaattorin, jonka avulla voimme yhdistää kahden tai useamman SELECT-lauseen tulosjoukot yhdeksi tulosjoukoksi. SQL:ssä on kolme päätyyppiä UNION-operaattoreita: UNION, UNION ALL ja UNION DISTINCT.
Tämä opetusohjelma tutkii näitä kolmea UNIONIT-tyyppiä ja tarjoaa todellisia ja käytännön esimerkkejä niiden kanssa työskentelystä.
HUOMAUTUS: Tässä esimerkissä käytämme esittelytarkoituksiin Sakila-mallitietokantaa. Varmista, että se on asennettu ennen näiden komentojen suorittamista. Voit katsoa opetusohjelmaamme saadaksesi lisätietoja.
SQL UNION -operaattori
Kuten mainittiin, UNION-operaattori antaa meille mahdollisuuden yhdistää kahden tai useamman valitun lausekkeen tulosjoukon ja poistaa päällekkäiset arvot. UNION-operaattorin syntaksi on seuraava:
VALITSE sarake1, sarake2, ...
taulukosta 1
LIITTO
VALITSE sarake1, sarake2, ...
FROM table2;
Edellisessä esimerkkisyntaksissa käytämme SELECT-käskyjä tietojen hakemiseen määritetyistä taulukoista. UNION-operaattori yhdistää sitten kaksi tulosjoukkoa yhdeksi joukoksi. Otetaan esimerkki, kuinka tämä tehdään Sakila-tietokannassa määritellyllä toimijataulukolla.
Harkitse seuraavaa esimerkkikyselyä, joka hakee näyttelijöiden etu- ja sukunimet näyttelijätaulukosta ja asiakkaan taulukosta:
VALITSE etunimi, sukuniminäyttelijältä
LIITTO
VALITSE etunimi, sukunimi
Asiakkaalta; VALITSE etunimi, sukunimi
näyttelijältä
LIITTO
VALITSE etunimi, sukunimi
Asiakkaalta;
Edellinen kysely lisää etu- ja sukunimet sekä toimija- että asiakastaulukoista ja palauttaa arvot yhtenä tuloksena.
Esimerkkituloste on seuraava:
SQL UNION ALL -operaattori
Toisin kuin UNION-operaattori, joka poistaa kaksoisarvot tulosjoukosta, UNION-operaattori palauttaa kaikki taulukon rivit, mukaan lukien kaksoiskappaleet.
Syntaksi on seuraava:
VALITSE sarake1, sarake2, ...taulukosta 1
UNIONI KAIKKI
VALITSE sarake1, sarake2, ...
FROM table2;
Seuraava esimerkki valitsee etu- ja sukunimen Sakila-tietokannan toimija- ja asiakastaulukoista:
näyttelijältä
UNIONI KAIKKI
VALITSE etunimi, sukunimi
Asiakkaalta;
Esimerkkituloste on seuraava:
SQL UNION DISTINCT Operaattori
Toinen ammattiliiton operaattorityyppi on UNION DISTINCT. Tämä operaattori on yksinkertaisesti kopio UNION-operaattorista, joka suorittaa samanlaisen toiminnon.
Syntaksi on seuraava:
VALITSE sarake1, sarake2, ...taulukosta 1
UNIONIN EROTUS
VALITSE sarake1, sarake2, ...
FROM table2;
SELECT-käskyt hakevat tiedot määritetyistä taulukoista, ja UNION DISTINCT -operaattori yhdistää tulosjoukot yhdeksi tulosjoukoksi, joka sisältää yksilölliset rivit.
Sakila-tietokannan esimerkissä voimme suorittaa seuraavan komennon:
VALITSE etunimi, sukuniminäyttelijältä
UNIONIN EROTUS
VALITSE etunimi, sukunimi
Asiakkaalta;
Tämän pitäisi palauttaa samanlainen tulos kuin UNION-operaattori.
Johtopäätös
Opimme työskentelemään erityyppisten UNIONSien kanssa SQL:ssä. UNION-operaattori yhdistää kahden tai useamman valitun lausekkeen tulosjoukon ja poistaa päällekkäiset tietueet. UNION ALL suorittaa samanlaisen toiminnon, mutta sisältää kaikki päällekkäiset rivit. Lopuksi UNION DISTINCT on identtinen alkuperäisen UNION-operaattorin kanssa.