SQL
SQL:n joukko-operaattorit: IN, BETWEEN ja UNION
SQL-lauseiden operaattorit mahdollistavat tietojen vertailun, yhdistämisen ja muokkaamisen osana kyselyä. Ne määrittävät, millä ehdoilla ja logiikalla tietoa käsitellään — tämän takia ne ovat olennainen SQL-kielen toimintaa. Operaattorit jaetaan perinteisesti kuuteen pääryhmään: aritmeettiset, vertailu-, merkki-, loogiset, joukko- ja muut operaattorit.
Joukko-operaattorit
SQL:n joukko-operaattorit yhdistävät usean eri SQL-kyselyn tulokset ja kohdentavat kyselyt arvojoukkoon (yksittäisten arvojen asemasta). Kaikki joukko-operaattorit vaativat, että kyselyt palauttavat saman määrän sarakkeita ja että sarakkeet ovat samaa tietotyyppiä.
IN-operaattori
IN-operaattori vertailee sarakkeen arvoa useaan vaihtoehtoon ilman pitkää OR-ketjua.
Se tekee kyselystä helpommin luettavan ja ylläpidettävän:
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Malli IN ('LADA','SKODA', 'VOLVO' );
Vastaava kysely olisi OR-operaattorin kautta toteutettuna näyttää seuraavalta:
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Malli = 'LADA' OR Malli = 'SKODA' OR Malli = 'VOLVO';
BETWEEN-operaattori
BETWEEN-operaattorilla tarkistetaan sijoittuuko arvo määritellyn välin rajojen sisään.
Se soveltuu erityisesti lukuarvojen tai päivämäärien vertailuun:
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Hinta BETWEEN 10000 AND 50000;
UNION – yhdistä ilman kaksoiskappaleita
UNION palauttaa kahden kyselyn tulokset ja poistaa kaksoisarvot (eli saman rivin esiintymät).
Seuraava kysely palauttaa kaikki eri automerkit molemmista tauluista:
SELECT Merkki FROM Autot
UNION
SELECT Merkki FROM Menopelit;
UNION ALL – yhdistä säilyttäen kaksoiskappaleet
UNION ALL toimii kuten UNION, mutta säilyttää kaikki rivit, myös kaksoisarvot.
Seuraava kysely voi siis palauttaa saman merkin useita kertoja:
SELECT Merkki FROM Autot
UNION ALL
SELECT Merkki FROM Menopelit;
INTERSECT – leikkaus
INTERSECT eli leikkaus palauttaa vain rivit, jotka esiintyvät molempien kyselyiden tulosjoukoissa:
SELECT Merkki FROM Autot
INTERSECT
SELECT Merkki FROM Menopelit;
MINUS - erotus
MINUS eli erotus palauttaa ensimmäisen kyselyn rivit, jotka eivät ole mukana toisessa kyselyssä.
SELECT Merkki FROM Autot
MINUS
SELECT Merkki FROM Menopelit;