SQL
Kuinka rajata kyselyn vaikutusaluetta SQL:n vertailuoperaattoreilla
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.
Vertailuoperaattorit
Vertailuoperaattoreilla vertaillaan lausekkeiden arvoja. Vertailu palauttaa yhden kolmesta loogisesta arvosta: tosi (True), epätosi (False) tai määrittämätön (Null)
Yhtäsuuruus
SQL-kielessä yhtäsuuruus merkitään =.
Yhtäsuuruus on yleisin WHERE-ehdossa käytetty vertailuoperaattori.
Tällöin sen avulla haetaan tietueet, joiden arvo vastaa täsmälleen annettua arvoa:
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Hinta = 50000;
Jos kysely löytää useita saman arvon sisältäviä tietueita, palauttaa se kaikki ehdot täyttävät tietueet.
Vaikka SQL itsessään ei ole nk. Case Sensitive, niin merkkijonoarvon yhtäsuuruutta vertaillessa ISOT ja pienet kirjaisimet käsitellään eri arvoina. Tästä syystä esimerkiksi alla oleva kysely ei todennäköisesti palauta tietueita:
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Malli = 'LADA';
Suurempi kuin ja pienempi kuin operaattorit
Vertailuoperaattorit suurempi kuin (>) ja pienempi kuin (<) mahdollistavat suuruus- ja pienuusvertailut.
Näihin voi yhdistää yhtäsuuruuteen, jolloin yhtäsuuruusoperaattori sijoitetaan vertailuoperaattorimerkin oikealle puolelle — eli >= ja <=.
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Hinta <= 50000;
Numeeristen arvojen lisäksi vertailuoperaattorit toimivat myös merkkijonoilla. Tällöin vertailu perustuu aakkosjärjestykseen ja käytettyyn merkistöön, kuten UTF-8. Useimmissa järjestelmissä isot kirjaimet sijoittuvat ennen pieniä. Seuraavassa esimerkissä palautetaan kaikki autot, joiden malli on aakkosjärjestyksessä ennen tai sama kuin 'LADA'.
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Malli <= 'LADA';
Erisuuruus
Joskus halutaan hakea kaikki tietueet, jotka eivät vastaa tiettyä arvoa.
Tätä varten käytetään erisuuruutta ilmaisevaa operaattoria <>.
SELECT Merkki, Malli, Hinta
FROM Autot
WHERE Malli <> 'LADA';
Toinen vaihtoehtoinen ja ei-standardi syntaksi erisuuruden ilmaisemiselle on !=-operaattori.
Tämän käyttöä tulisi kuitenkin välttää.