SQL

SQL KOULUTUSTA VUONNA 2025!

Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi heti! Koulutuksen järjestää asiantuntijasi Koulutus- ja konsultointipalvelu KK Mediat.

Loogiset operaattorit AND, OR ja NOT: useiden ehtojen hyödyntäminen SQL-kyselyissä

Operaattorit ovat SQL-lauseiden osia, joiden avulla tietoja voidaan vertailla, yhdistellä ja muokata osana kyselyä. Ne määrittävät, millä ehdoilla ja logiikalla tietoa käsitellään — tämän takia ne ovat olennainen osa SQL-kielen toimintaa. Operaattorit voidaan jakaa kuuteen ryhmään: aritmeettiset, vertailu, merkki, loogiset, joukko ja muut operaattorit.

Loogiset operaattorit

Loogisten operaattoreiden avulla voidaan yhdistää useita ehtoja SQL-kyselyissä. Ne mahdollistavat monipuolisempien hakulauseiden muodostamisen, kun halutaan huomioida useampia kriteerejä.

Molempien ehtojen on toteuduttava: AND-operaattori

AND-operaattori tarkoittaa sitä, että kaikkien ehtolausekkeiden tulee olla tosia, jotta lauseke olisi tosi. Alla haetaan autot, 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 ehdoista on tosi, jotta lausekkeestä tulee tosi. Alla palautetaan listaus autoista, joissa 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. Alla oleva kysely palauttaa kaikki autot, joiden mallinimessä ei esiinny "AD".


SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Malli NOT LIKE '%AD%'  ;


Ehtojen ryhmittely sulkeilla

Kun käytetään useita loogisia operaattoreita, sulkeilla voidaan määrittää ehtojen laskentajärjestys. Ilman sulkeita SQL tulkitsee ehdot tietyssä 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ä olevassa kyselyssä haetaan autot, joiden mallinimessä on "AD" tai "FO" ja hinta on alle 20 000 euroa. Ilman sulkeita ehtojen yhdistelmä voisi palauttaa vääränlaisen tuloksen.