SQL
Loogiset operaattorit AND, OR ja NOT: useiden ehtojen hyödyntäminen SQL-kyselyissä
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.
Loogiset operaattorit
Loogiset operaattorit yhdistävät useita ehtoja SQL-kyselyissä. Ne mahdollistavat monipuolisempien hakulauseiden muodostamisen, kun halutaan huomioida useampia kriteerejä.
Molempien ehtojen on toteuduttava: AND-operaattori
AND-operaattori vaatii, että kaikki liittyvät ehtolausekkeet ovat tosia, jotta koko ehtolauseke olisi tosi.
Seuraavassa esimerkissä kysellään autoja, joiden malli sisältää merkkijonon "AD" ja hinta ylittää 10 000 euroa.
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Malli LIKE '%AD%'
AND
Hinta > 10000;
Riittää että yksi ehto toteutuu: OR-operaattori
Or-operaattorilla riittää, että yksi liitetyistä ehdoista on tosi, jotta koko ehtolausekkeestä tulee tosi. Seuraavassa esimerkissä palautetaan listaus autoista, joiden mallin nimessä esiintyy "AD" tai hinta ylittää 10 000 euroa. Siispä:
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Malli LIKE '%AD%'
OR
Hinta > 10000;
Vertailuehdon negaatio: NOT-operaattori
NOT-operaattori kääntää vertailuehdon totuusarvon. Seuraava esimerkkikysely palauttaa kaikki autot, joiden mallinimessä ei esiinny merkkijonoa "AD".
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Malli NOT LIKE '%AD%' ;
Ehtojen ryhmittely sulkeilla
Kun kysely sisältää useita loogisia operaattoreita, niiden suoritusjärjestystä ohjataan sulkeiden käytöllä. Käytä sulkeita varmistaaksesi, että ehtosi evaluoidaan halutussa järjestyksessä. Ilman sulkeita SQL tulkitsee ehdot oletusjärjestyksessä (NOT → AND → OR), mikä voi johtaa yllättäviin tuloksiin.
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE (Malli LIKE '%AD%' OR Malli LIKE '%FO%')
AND Hinta < 20000;
Yllä oleva esimerkkikysely tekee listauksen autoista, joiden mallinimessä on "AD" tai "FO" ja hinta on alle 20 000 euroa. Ilman sulkeita ehtojen yhdistelmä voisi palauttaa vääränlaisen tuloksen.