SQL-kyselyt - Demo 3

Näissä demoissa opetellaan SQL-kyselyjen perusteita.

Alkuvalmistelut

  1. Käynnistä Microsoft Access ja luo uusi tietokanta c:\mytemp\-kansioon nimelle reseptit.mdb. Älä käytä aiemmissa demoissa luomaasi reseptitietokantaa!
  2. Tarkista, että Accessin optioissa on valittuna suomenkielinen järjestys eli Tools | Options | General | New database sort order | Swedish/Finnish. Uuden Office 2007:n Accessissa sama asetus löytyy Office-napin kautta kohdasta Access options | Popular | New database sort order.
  3. Sulje Microsoft Access.
  4. Käynnistä Erkka-ohjelma (Start | Programs | Erkka)
  5. Siirry Query-välilehdelle ja avaa yhteys edellä luomaasi Access-tietokantaan
  6. Kopioi leikepöydälle resepti.sql-tiedoston sql-lauseet
  7. Liitä SQL-lauseet Erkan Query-välilehdelle SQL-statement-laatikkoon.
  8. Suorita SQL-lauseet (Execute)
  9. Poista kaikki SQL-lauseet

Käytössäsi on nyt seuraavan kuvan esittämä tietokanta:

Reseptitietokanta

SQL-kyselyt

Kirjoita seuraavat SQL-kyselyt. Voit kirjoittaa kaikki kyselyt samaan tiedostoon kunhan erotat ne puolipisteellä (;) toisistaan. Tallenna kyselyt U:-asemalle demo3.sql-nimelle. Muista tallentaa tarpeeksi usein. Vinkkejä kyselyjen tekemiseen löytyy luento 5 - ja luento 6 -sivuilta ja kurssimonisteesta.

  1. Hae kaikki tiedot reseptitaulusta. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimikuvaushenkilomaarareseptiidruokalajiid
    Ananas Con CarneTulinen412
    TiramisuHieno herkku627
    BanaanicurryMainio kasvisruoka232
    PorkkanapiirakkaSuuri herkku847
    RommikakkuHyytelökakku, ei tarvi paistaa657
    KauralastutHelppo ja nopea467
  2. Hae ruokalajien nimet. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimi
    Alkuruoka
    Pääruoka
    Lisäkeruoka
    Väli - tai iltapala
    Jälkiruoka
    Suolainen leivonnainen
    Makea leivonnainen
  3. Hae yksiköiden lyhenteet ja nimet. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    lyhennenimi
    kplKappale
    dl Desilitra
    l Litra
    g Gramma
    kg Kilogramma
    tl Teelusikka
    rklRuokalusikka
  4. Hae kaikkien niiden reseptien nimet ja henkilömäärät, jotka on tarkoitettu neljälle henkilölle. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimihenkilomaara
    Ananas Con Carne4
    Kauralastut4
  5. Hae kaikkien niiden reseptien nimet ja henkilömäärät, jotka ovat vähintään neljälle henkilölle. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimihenkilomaara
    Ananas Con Carne4
    Tiramisu6
    Porkkanapiirakka8
    Rommikakku6
    Kauralastut4
  6. Hae kaikkien niiden reseptien nimet ja henkilömäärät, jotka ovat kahdelle, kolmelle tai neljälle henkilölle käytä IN-lausetta. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimihenkilomaara
    Ananas Con Carne4
    Banaanicurry2
    Kauralastut4
  7. Tee edellinen myös käyttäen BETWEEN-lausetta.
  8. Hae kaikkien niiden reseptien nimet ja henkilömäärät joita ei ole tarkoitettu neljälle henkilölle. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimihenkilomaara
    Tiramisu6
    Banaanicurry2
    Porkkanapiirakka8
    Rommikakku6
  9. Hae kaikkien niiden reseptien nimet, joiden nimi alkaa P-kirjaimella. Kyselyn tuloksena pitäisi tulla seuraava rivi:
    nimi
    Porkkanapiirakka
  10. Hae kaikkien niiden reseptien nimet, joiden nimi loppuu u-kirjaimeen. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimi
    Tiramisu
    Rommikakku
  11. Hae kaikkien niiden reseptien nimet, henkilomaara ja ruokalajiid, joiden ruokalajiid on 7 ja jotka on tarkoitettu yli kuudelle henkilölle. Kyselyn tuloksena pitäisi tulla seuraava rivi:
    nimihenkilomaararuokalajiid
    Porkkanapiirakka87
  12. Hae kaikkien niiden reseptien nimet ja henkilömäärät, jotka ovat kahdelle, kolmelle tai neljälle henkilölle. Alä käytä IN- tai BETWEEN-lausetta! Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimihenkilomaara
    Ananas Con Carne4
    Banaanicurry2
    Kauralastut4
  13. Hae kaikkien niiden reseptien nimet, joiden ruokalajiid on 7 ja jotka on tarkoitettu neljälle henkilölle. Kyselyn tuloksena pitäisi tulla seuraava rivi:
    nimihenkilomaararuokalajiid
    Kauralastut47
  14. Hae kaikkien niiden reseptien nimet joiden ruokalajiid on 2 TAI jotka on tarkoitettu neljälle henkilölle. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimihenkilomaararuokalajiid
    Ananas Con Carne42
    Banaanicurry22
    Kauralastut47
  15. Hae reseptien nimet ja järjestä ne nousevaan aakkosjärjestykseen. Kyselyn tuloksena pitäisi tulla seuraavat rivit seuraavassa järjestyksessä:
    nimi
    Ananas Con Carne
    Banaanicurry
    Kauralastut
    Porkkanapiirakka
    Rommikakku
    Tiramisu
  16. Hae reseptien nimet ja henkilömäärät ja järjestä ne ensisijaisesti henkilömäärien mukaan nousevaan järjestykseen ja edelleen nimien mukaan nousevaan aakkosjärjestykseen. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimi henkilomaara
    Banaanicurry 2
    Ananas Con Carne 4
    Kauralastut 4
    Rommikakku 6
    Tiramisu 6
    Porkkanapiirakka 8
  17. Hae reseptin nimi ja siihen liittyvän ruokalajin nimi. Joudut käyttämään kahden taulun välistä liitosta kyselyssä. Liitosta tehdessäsi kannattaa katsoa demojen alussa olevaa taulukaaviota! Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimiruokalaji
    Ananas Con CarnePääruoka
    BanaanicurryPääruoka
    TiramisuMakea leivonnainen
    PorkkanapiirakkaMakea leivonnainen
    RommikakkuMakea leivonnainen
    KauralastutMakea leivonnainen
  18. Hae reseptin nimi ja reseptiin kuuluvat ohjeet. Järjestä hakutulos reseptien nimien mukaan aakkosjärjestykseen ja ohjeet numerojärjestykseen. Huomaa, että Erkka saattaa levittää tuloslistauksen näyttöä leveämmäksi. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimi vaihenro ohjeteksti
    Ananas Con Carne 1 Kuumenna öljy padassa ja ruskista lihaa ja sipulia kovalla lämmöllä noin 10-15 minuuttia koko ajan sekoittaen, kunnes neste on haihtunut.
    Ananas Con Carne 2 Mausta suolalla ja chilillä (kannattaa olla varovainen;) ja puserra pataan valkosipulia. Kaada nesteeksi tomaatit liemineen javähennä lämpöä. Sekoita pataa silloin tällöin. Kaada sekaan 1.5 dl vettä ja lisää lihaliemikuutio.
    Ananas Con Carne 3 nostele pataan paprika, purjo ja selleri. Kaada joukkoon ananasmurska ja pavut. Jos jätät ananasmurskan pois niin tuloksena on tavallinen chili con carne.
    Ananas Con Carne 4 Tarjoa keitetyn riisin kera.
    Banaanicurry 1 Silppua sipuli ja murskaa valkosipulinkynsi
    Banaanicurry 2 Kuumenna pannussa öljyä ja kuullota sipulisilppu
    Banaanicurry 3 Lisää curryjauhe, valkosipuli, mangochutney ja suola
    Banaanicurry 4 Kiehuta miedolla lämmöllä viisi minuuttia, lisää kerma ja kiehuta viela viisi minuuttia.
    Banaanicurry 5 Lisää ruuanvalmistusjugurtti. Lämmitä mutta älä keitä koska jugurtti juoksettuu helposti.
    Banaanicurry 6 Lohko banaanit viipaleiksi ja sekoita joukkoon.
    Banaanicurry 7 Tarjoaa persiljariisin kera.
    Kauralastut 1 Sekoita kaikki aineet sulaneeseen rasvaan.
    Kauralastut 2 Nosta taikinasta pellille leivinpaperille pieniä nokareita kahdella lusikalla. Jätä reilut välit.
    Kauralastut 3 Paista kauralastuja n. 5 minuuttia 200 asteessa. Irrota leivinpaperista hieman jäähtyneinä.
    Porkkanapiirakka 1 Munat ja sokeri vaahdoksi.
    Porkkanapiirakka 2 Jauhot sekaisin, lisataan vaahtoon.
    Porkkanapiirakka 3 Sulatettua voita 175g ja raaste lisätään varovasti sekoittaen.
    Porkkanapiirakka 4 Sulata loppu voi (ei ruskisteta) pilko juusto sekaan, miedolla lämmöllä kunnes juusto sulaa.
    Porkkanapiirakka 5 Nosta levyltä, lisää sokerit. Levitä heti leivoslevyn päälle
    Rommikakku 1 Vatkaa keltuaiset ja sokeri vahdoksi.
    Rommikakku 2 Lisää vatkattu kerma ja rommi vaahtoon
    Rommikakku 3 Liota lehtiä kulmassa vedessä, liuota sitten kiehuvaan veteen, anna hieman jäähtyä ennen vaahtoon lisäämistä.
    Rommikakku 4 Anna hyytyä jääkaapissa ennen tarjoamista n. 2 h. Mieluummin yön yli.
    Tiramisu 1 Vatkaa munat ja sokeri vaahdoksi. Sekoita muut aineet keskenään ja seulo vaahtoon
    Tiramisu 2 Kaada taikina leivinpaperilla vuorattuun uunipannuun. Paista 200 asteessa n.12min (silmät tarkkana ;)
    Tiramisu 3 ripota leivinpaperille sokeria, kumoa levy sille ja poista leivinpaperi. Anna jäähtyä.
    Tiramisu 4 Liota liivatelehdet kuumaan kahviin. Anna jäähtyä.
    Tiramisu 5 Vatkaa keltuaiset ja sokeri vaahdoksi, lisää vaahtoon juusto, ranskankerma, mantelilikööri ja liivateseos. Vaahdota kerma. Vatkaa valkuaiset kovaksi vaahdoksi. Lisää molemmat varovasti seokseen.
    Tiramisu 6 Leikkaa kakkulevy kahtia, kostuta levyt kahvi-likööriseoksella. Pane toinen puolikas sopivan kokoiseen vuokaan. Levitä puolet täytteestä levylle, nosta toinen levy ja levitä päällimmäiseksi loput täytteestä. Tasoita ja ripota pinnalle kaakaojauhetta.
    Tiramisu 7 Anna jähmettyä jääkaapissa.
  19. Hae reseptin nimi ja siihen liittyvien aineiden nimet, ainemäärät ja ainemäärän yksiköt reseptin nimen ja aineiden nimien mukaan järjestettynä. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimimaarayksikko_lyhenneaine
    Ananas Con Carne450.00g Ananasmurska
    Ananas Con Carne2.00tl Cayennepippuri
    Ananas Con Carne400.00g Jauheliha
    Ananas Con Carne2.00kplLehtiselleri
    Ananas Con Carne1.00kplLihaliemikuutio
    Ananas Con Carne1.00kplPurjo
    Ananas Con Carne4.00kplSipuli
    Ananas Con Carne1.00tl Suola
    Ananas Con Carne400.00g Tomaattimurska
    Ananas Con Carne400.00g Valkoiset pavut tomaattikastikkeessa
    Ananas Con Carne3.00kplValkosipulinkynsi
    Ananas Con Carne5.00rklÖljy
    Banaanicurry2.00kplBanaani
    Banaanicurry2.00rklCurry
    Banaanicurry3.00rklMangochutney
    Banaanicurry2.00dl Ruuanvalmistusjugurtti
    Banaanicurry1.00kplSipuli
    Banaanicurry1.00tl Suola
    Banaanicurry3.00kplValkosipulinkynsi
    Banaanicurry1.00rklÖljy
    Kauralastut1.00kplKananmuna
    Kauralastut1.50dl Kaurahiutale
    Kauralastut1.00tl Leivinjauhe
    Kauralastut50.00g Margariini
    Kauralastut1.00dl Sokeri
    Kauralastut1.00tl Vaniljasokeri
    Kauralastut2.00rklVehnäjauho
    Porkkanapiirakka4.00kplKananmuna
    Porkkanapiirakka2.00tl Leivinjauhe
    Porkkanapiirakka200.00g Maustamaton koskenlaskijajuusto
    Porkkanapiirakka6.00dl Porkkanaraaste
    Porkkanapiirakka3.00dl Sokeri
    Porkkanapiirakka3.00tl Sooda
    Porkkanapiirakka3.00dl Tomusokeri
    Porkkanapiirakka3.00tl Vaniljasokeri
    Porkkanapiirakka4.00dl Vehnäjauho
    Porkkanapiirakka250.00g Voi
    Rommikakku200.00g Digestivekeksi
    Rommikakku4.00kplKeltuainen
    Rommikakku4.00dl Kuohukerma
    Rommikakku5.00kplLiivatelehti
    Rommikakku100.00g Margariini
    Rommikakku3.00rklRommi
    Rommikakku1.50dl Sokeri
    Rommikakku1.00rklSokeri
    Tiramisu2.00dl Kahvi
    Tiramisu4.00kplKananmuna
    Tiramisu3.00kplKeltuainen
    Tiramisu2.00dl Kuohukerma
    Tiramisu1.00tl Leivinjauhe
    Tiramisu4.00kplLiivatelehti
    Tiramisu6.00rklMantelilikööri
    Tiramisu300.00g Maustamaton tuorejuusto
    Tiramisu0.75dl Perunajauho
    Tiramisu1.00dl Ranskankerma
    Tiramisu1.50dl Sokeri
    Tiramisu2.00dl Tomusokeri
    Tiramisu3.00kplValkuainen
    Tiramisu1.00dl Vehnäjauho
  20. Hae Porkkanapiirakkareseptiin kuuluvien valmistusaineiden nimet ja niitä tarvittavat määrät yksiköineen. Järjestä tiedot valmistusaineiden mukaan aakkosjärjestykseen. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimi maara yksikko_lyhenne aine
    Porkkanapiirakka 4.00 kpl Kananmuna
    Porkkanapiirakka 2.00 tl Leivinjauhe
    Porkkanapiirakka 200.00 g Maustamaton koskenlaskijajuusto
    Porkkanapiirakka 6.00 dl Porkkanaraaste
    Porkkanapiirakka 3.00 dl Sokeri
    Porkkanapiirakka 3.00 tl Sooda
    Porkkanapiirakka 3.00 dl Tomusokeri
    Porkkanapiirakka 3.00 tl Vaniljasokeri
    Porkkanapiirakka 4.00 dl Vehnäjauho
    Porkkanapiirakka 250.00 g Voi
  21. Laske montako eri ainetta tietokannassa on listattu. Tarvitset avuksesi yhteenvetofunktiota. Kyselyn tuloksena pitäisi tulla seuraava rivi:
    Aineita
    40
  22. Laske paljonko kaikkiin resepteihin yhteensä tarvitaan kananmunia. Kyselyn tuloksena pitäisi tulla seuraava rivi:
    Kananmuna
    9.00
  23. Laske montako reseptiä liittyy kuhunkin ruokalajiin. Kyselyssä joudut käyttämään ryhmittelyä!. Ryhmittelyn perusongelmista on oma vinkkisivu. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    ruokalajiidnimilukumaara
    2Pääruoka2
    7Makea leivonnainen4
  24. Laske montako valmistusvaihetta liittyy kuhunkin reseptiin. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimilukumaara
    Ananas Con Carne4
    Tiramisu7
    Banaanicurry7
    Porkkanapiirakka5
    Rommikakku4
    Kauralastut3
  25. Laske paljonko kutakin ainetta tarvitaan kaikissa resepteissä yhteensä. Varmista, että lasket yhteen vain samassa yksikössä ilmoitetut ainemäärät. Järjestä aineet aakkosjärjestykseen aineen nimen ja käytetyn yksikön mukaan. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimilukumaarayksikko_lyhenne
    Ananasmurska450.00g
    Banaani2.00kpl
    Cayennepippuri2.00tl
    Curry2.00rkl
    Digestivekeksi200.00g
    Jauheliha400.00g
    Kahvi2.00dl
    Kananmuna9.00kpl
    Kaurahiutale2.50dl
    Keltuainen7.00kpl
    Kuohukerma6.00dl
    Lehtiselleri2.00kpl
    Leivinjauhe4.00tl
    Lihaliemikuutio1.00kpl
    Liivatelehti9.00kpl
    Mangochutney3.00rkl
    Mantelilikööri6.00rkl
    Margariini150.00g
    Maustamaton koskenlaskijajuusto200.00g
    Maustamaton tuorejuusto300.00g
    Perunajauho0.75dl
    Porkkanaraaste6.00dl
    Purjo1.00kpl
    Ranskankerma1.00dl
    Rommi3.00rkl
    Ruuanvalmistusjugurtti2.00dl
    Sipuli5.00kpl
    Sokeri7.00dl
    Sokeri1.00rkl
    Sooda3.00tl
    Suola2.00tl
    Tomaattimurska400.00g
    Tomusokeri5.00dl
    Valkoiset pavut tomaattikastikkeessa400.00g
    Valkosipulinkynsi6.00kpl
    Valkuainen3.00kpl
    Vaniljasokeri4.00tl
    Vehnäjauho5.00dl
    Vehnäjauho2.00rkl
    Voi250.00g
    Öljy6.00rkl
  26. Listaa aakkosjärjestyksessä niiden reseptien nimet, joihin liittyy yli neljä valmistusvaihetta. Listaa myös valmistusvaiheiden lukumäärä. Kyselyn tuloksena pitäisi tulla seuraavat rivit:
    nimicount
    Banaanicurry7
    Porkkanapiirakka5
    Tiramisu7
  27. Listaa aakkosjärjestyksessä niiden reseptien nimet, jotka on tarkoitettu vähintään kuudelle henkilölle ja joihin liittyy yli viisi valmistusvaihetta. Listaa myös valmistusvaiheiden lukumäärä ja henkilömäärä. Kyselyn tuloksena pitäisi tulla seuraava rivi:
    nimihenkilomaaravaiheet
    Tiramisu67

Käyttäjien kommentit

MJK ( 2009-09-07 12:38:44 )

;-) Mikäli tehtävän 22. esimerkkivastauksen perusteella pitäisi keittiöön hakea tarvikkeet IT-Tiedekunnan syysjuhlan tarjoiluja vasten, niin jäisi kattaus vajaaksi. Vielä kaupasta ei voi ostaa erikseen keltuaista/valkuaista, joita osassa resepteissä tarvitaan. Siis kananmunia tarvitaan yhteensä 16 kpl, mikäli halutaan saada kaikki reseptit valmistettua ohjeen mukaisesti. Tehtävään 25 lisäämällä oheisen rivin loppuun saadaan HAVING Aine.Nimi='Kananmuna' OR Aine.Nimi='Keltuainen' Tämäkään ei vielä ole täydellinen ja ei toimi silloin kun reseptissä on ainoastaan valkuaista.

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/tiedonhallinta/demot/demo3/
© Antti Ekonoja (antti.j.ekonoja@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/>
2011-01-27 11:51:08
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta