AND ja OR

<ehtolause1> AND <ehtolause2><ehtolause1> OR <ehtolause2>

AND ja OR –operaattoreilla voidaan yhdistää kaksi tai useampia hakuehtoja. AND-operaattorilla voidaan erottaa pakollisia ehtoja joiden kaikkien on toteuduttava, jotta käsiteltävänä oleva rivi otetaan mukaan lopputulokseen. OR-operaattorilla erotetaan taas vaihtoehtoiset ehdot, jolloin riittää, että jokin ehdoista toteutuu. AND- ja OR-operaattoreita voi käyttää sekaisin, mutta tällöin kannattaa suluilla varmistaa, että operaatioiden suoritus tapahtuu varmasti halutussa järjestyksessä.

Haetaan kaikkien niiden sukunimet ja aloitusvuodet, jotka ovat aloittaneet ennen vuotta 1996 ja eivätkä ole laitokselta 1.

SELECT sukunimi, aloitusFROM Opiskelija
WHERE aloitus < 1996
AND laitos <> 1;
SUKUNIMI ALOITUS
------------ -------
Kielinero 1995
1 record(s) selected.

Haetaan niiden opiskelijoiden sukunimi ja aloitusvuosi, jotka ovat aloittaneet vuoden 1995 jälkeen tai joiden laitos on jokin muu kuin 1

SELECT sukunimi, aloitusFROM Opiskelija
WHERE aloitus> 1995
OR laitos <> 1;
SUKUNIMI ALOITUS
------------ -------
Tieteilijä 1999
Tieteilijä 1996
Kielinero 1995
Kirjailija 1997
Kasvattaja 1998
Opettaja 2000
6 record(s) selected.

Lasketaan keskiarvo tietokannat-kurssin tenttisuorituksista 1.1.1999:

SELECT AVG(Arvosana) AS KeskiarvoFROM Tenttii
WHERE Kurssi = 'TIE150'
AND Paivamaara = '1999-1-1';
KESKIARVO 
---------------------------------
2,500000000000000000000000000000
1 record(s) selected.

Jos on hiemankin epävarma loogisten operaattorien suoritusjärjestyksestä, niin kannattaa käyttää sulkuja.

Haetaan sukunimet ja osoitteet kaikista niistä opiskelijoista, joiden sukunimi alkaa K-kirjaimella ja jotka asuvat Keskustassa tai jotka asuvat taitoniekantiellä (TNT) ja joiden sukunimi päättyy a-kirjaimeen:

SELECT Sukunimi, lahiosoiteFROM Opiskelija
WHERE 

( sukunimi LIKE 'K%'

AND lahiosoite = 'Keskusta'

)

OR

( lahiosoite LIKE 'TNT%'

AND sukunimi LIKE '%a');

SUKUNIMI LAHIOSOITE ------------ ------------
Kielinero Keskusta 
Kirjailija Keskusta 
Kasvattaja TNT 9 A 000 
3 record(s) selected.

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/doc/tiedonhallinta/sql/dml/index11.html
© Antti Ekonoja (anjoekon@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2004-11-05 15:24:56
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto