Table of Contents
Set theory tarjoaa perustan monimutkaisten datakyselyiden ymmärtämiselle ja rakentamiselle SQL:ssä. Sovelltamalla periaatteita, kuten liittoja, risteyksiä ja eroja, käyttäjät voivat tehokkaasti hakea ja käsitellä tietoja useista taulukoista tai dataaineistoista. Tässä artikkelissa esitellään käytännön esimerkkejä siitä, miten SQL:ssä käytetään asetettuja teoriakäsitteitä monimutkaisten tietojen hakutehtävien hoitamiseen.
Käyttämällä unioni yhdistää tietosarjoja
SQL:n UNION-operaattori yhdistää kahden tai useamman SELECT-ilmoituksen tulokset yhdeksi tulossarjaksi. Se poistaa kaksoisrivit, ellei UNION ALL:ia käytetä. Tämä toiminto on hyödyllinen, kun yhdistetään tietoja samanlaisista taulukoista tai kyselyistä.
Esimerkki:
Hae kaikki yksilölliset asiakastunnukset kahdelta eri alueelta:
VALITSE customer id alk. region1 customers
UNION
SELECT customer id alk. region2 custores;
InterSECTin soveltaminen yhteisiin tietoihin
INTERSECT-operaattori palauttaa vain molemmissa tulossarjoissa olevat rivit. Se on hyödyllinen yhteisten elementtien löytämiseksi eri tietokokonaisuuksista.
Esimerkki:
Löydä asiakkaat, jotka ostivat tuotteita sekä A- että B-luokista:
VALITSE asiakas id ostoksista luokka a[
INTERSECT
SELECT customer id ostoista luokka b;
Käyttämällä POIKKEUSA Etsi eroja
POIKKEAJA hakee rivit ensimmäisestä kyselystä, jotka eivät ole toisessa. Se auttaa tunnistamaan ainutlaatuiset tietopisteet.
Esimerkki:
Luettelo asiakkaista, jotka ovat ostaneet A-luokan mutta eivät B-luokan tuotteita:
VALITSE customer id alk. ostot luokka a[
POIKKEA[
] SELECT customer id alk. ostot luokka b;
Käytännön sovellus Complex Queries
Aseta teorian toiminnot mahdollistavat monimutkaisen kyselyn, johon liittyy useita tietokokonaisuuksia. Yhdistämällä UNIONIN, INTERSECTin ja POIKKEUKSEN mahdollistaa tarkan tiedon keräämisen erityisolosuhteiden perusteella.
Esimerkiksi löytää asiakkaita, jotka ostivat tuotteita A- tai B-kategoriasta mutta eivät molempia, voit yhdistää INTERSECT- ja POIKKEUStoiminnon.
Esimerkki:
VALITSE customer id alk. ostot luokka a[
UNIONI[
] VALITSE asiakas id ostot luokka b
POIKKEUS[
] VALITSE asiakas id ostot luokka a[
] INTERSECT[
] VALITSE asiakas id ostot luokka b;