free webpage counters
ETUSIVU materiaalit

23 SQL: SELECT

Seuraavaksi käydään läpi SQL:n perusteita yleisellä tasolla. Esimerkit perustuvat Mäntyharjun kunnallisvaalitietoihin vuodelta 2004. Alla on kuvattu taulut (2 kpl) sekä niiden väliset yhteydet eli relaatiot (1 kpl).







SELECT


SQL:ssä haut tietokannasta tehdään SELECT-lausella. Yksinkertaisinta on hakea taulusta kaikki mahdolliset sarakkeet. Se tapahtuu kirjoittamalla SELECTIN perään tähti (*).

Huom!


Siihen kohtaan missä lukee FROM, on kirjoitettava taulun nimi, jotta tiedetään mistä taulusta tietoja haetaan. Koko kantaan ei voida viitata suoraan. Taulun nimi pitää aina mainita.



Esim 1.
Valitse kaikki tietueet taulusta puolue
SELECT* FROM puolue



Jos halutaan rajata mitä sarakkeita haetaan on mainittava sarkkaiden nimet. Katso esimerkki 2.

Esim 2.
Valitse puoluetunnus ja puolue taulusta puolue
SELECT ptunnus, puolue FROM puolue



ORDER BY

Järjestys saadaan aikaan kommennolla ORDER BY, joka kirjoitetaan aina SELECT lauseen loppuun, katso esimerkki 3.

Esim 3.
Valitse puoluetunnus, puolue taulusta puolue ja järjestä tulokset puolueen mukaan (aakkosjärjestys)
SELECT ptunnus, puolue FROM puolue ORDER by puolue


Mikäli järjestys halutaan kääntää kirjoitetaan nimen jälkeen DESC. Siisk uten esimerkissä 4.

Esim 4.
Valitse puoluetunnus, puolue taulusta puolue ja järjestä tulokset puolueen mukaan käänteisesti.
SELECT ptunnus, puolue FROM puolue ORDER by puolue DESC



WHERE

WHERE-määreen avulla voidaan määritellä vertailuehtoja sille mitä haetaan. On siis mahdollista poimia vaikka yksittäisi tietueita. Katso esimerkit 5-12.

Esim 5.
Valitse puolue taulusta puolue, jonka tunnus on 1
SELECT puolue FROM puolue WHERE ptunnus=1



Esim 6
Haetaan puolueet, joiden puoluetunnuus on suurempi kuin 2
SELECT puolue FROM puolue WHERE ptunnus >2



Esim 7.

Haetaan puolueet, joiden tunnus on 1,2 tai 3.
SELECT puolue FROM puolue WHERE ptunnus IN (1,2,3)



Esim 8.
Haetaan puolueet, joiden tunnus on joko 1 tai 2.
SELECT puolue FROM puolue WHERE ptunnus=1 OR ptunnus=2



Esim 9.
Haetaan puoleet, joiden tunnus ei ole 1 tai 5.
SELECT puolue FROM puolue WHERE ptunnus NOT IN (1,5)



Esim 10.
Haetaan puolueet, joiden puolutunnus on väliltä 1-5.
SELECT puolue FROM puolue WHERE ptunnus BETWEEN 1 AND 5



Esim 11.
Haetaan puolueet, joiden lopussa lukee -sta.
SELECT puolue FROM puolue WHERE puolue like '%sta'



Esim 12.
Haetaan puolueet, joissa esiintyy kirjain y
SELECT puolue FROM puolue WHERE puolue like '%y%'



Esim 13.

Haetaan puolueet, joiden nimi alkaa S:llä ja siinä on yhteensä 15 kirjainta.
select* from puolue where puolue like 'S______________'