10.07.2015 Views

Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool

Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool

Andmebaasid I - Teema nr. 3 - Tallinna Tehnikaülikool

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

TTÜ: Relatsioonialgebra. Sissejuhatus SQL keelde (2012) © Erki Eessaar5.8.4 PiirangWHERE klausel sisaldab loogikaavaldist (otsingutingimust).Loogikaavaldiseks võib olla atomaarne tingimus või atomaarsetesttingimustest loogikaoperaatorite (AND, OR, NOT) abil moodustatudliittingimus.SELECT tootaja_kood, perenimi, registr_kpvFROM TootajaWHERE palk>500;Avaldise koostamisel pidage silmas.- Sulgudes olevad alamavaldised arvutatakse enne.- NOTe käsitletakse enne kui ANDe ja ORe- ANDe käsitletakse enne ORe.- Operaatorit AND ja OR on kommutatiivsed. Järelikult avaldised p AND q jaq AND p on samaväärsed. Samuti on samaväärsed avaldised p OR q jaq OR p. q ja p on predikaadid.Date (2009) märgib, et näiteks järgmise SQL lause puhul ei pruugi ollavälistatud erandolukorra tekkimine negatiivse x väärtuse korral, sestandmebaasisüsteem võib leida ruutjuure (funktsiooni Sqrt abil) enne, kuikontrollib tingimuse x>=0 täidetust.SELECT ...FROM ...WHERE x>=0 AND Sqrt (x) ...WHERE klauslis olev loogikaavaldis on tegelikult predikaat. Predikaat ontõeväärtusfunktsioon, millel on null või rohkem parameetrit. Näiteks eelnevaslauses on loogikaavaldis palk>500 ja parameeter on palk. Tegemist onlihtpredikaadiga. Lihtpredikaatidest saab loogikaoperaatorite abil moodustadaliitpredikaate (liitpredikaadi näide: palk>500 OR palk IS NULL). Predikaati,millel on null parameetrit, nimetatakse väiteks e. lauseks (proposition). Sellisepredikaadi "väljakutsumine" annab alati tulemuseks ühe ja sama tõeväärtuse.Kui me anname kõigile predikaadi parameetritele mingi väärtuse, siistulemuseks saame väite, mis on tõene (TRUE) või väär (FALSE). Kuna SQLkasutab NULLe ja kolmevalentset loogikat, siis on võimalik, et mõne väitepuhul ei ole teada kas see väide on tõene või väär (UNKNOWN). Kui anname parameetrile palk väärtuse 300, siis saame väite 300>500,mis on väär (FALSE). Kui anname parameetrile palk väärtuse 1000, siis saame väite1000>500, mis on tõene (TRUE). Kui parameetril palk väärtus puudub (NULL), siis saame väiteNULL>500, mille kehtivus on teadmata (UNKNOWN).SQL lause täitmisel moodustab andmebaasisüsteem reas olevate andmetepõhjal predikaadist väite ja otsustab kas see väide on TRUE, FALSE võiUNKNOWN. Päringu tulemusse kuuluvad vaid sellised read, mille korral väite50

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!