Alustuseks vaadake üle allolev nimekiri lausete tähistustest, et SQL lausete üldkujust paremini aru saada.
SQL lausete tähistused:
- < > ümbritsevad nimesid
- [ ] mittekohustuslik osa
- { } kohustuslik grupeeritud osa – kõik mis nende vahel on, peab SQL lauses olemas olema
- | alternatiivide eraldaja, üks alternatiiv tuleb valida
- ... kordus
- := see on (defineerimiseks)
- suurtähed - SQL keele reserveeritud sõnad
- väiketähed - muutujad (nimed, literaalid)
Päringud
Tabelites loodud andmeid on vaja ka kuidagi vaadata. Üks moodus andmete vaatamiseks oleks kasutada DBeaveris tabeli 'Data' vaadet. See lahendus ei ole aga väga sobilik, kui me otsime mingeid kindlaid kirjeid tabelist ning meie tabelis on tuhandeid ridu. Parem oleks kasutada lahendust, mis otsib meie eest tabelist ridu, mis meid huvitavad ning kuvab neid meile. Selleks pakub SQL võimalust pärida tabelitest andmeid SELECT
käsuga. Selles materjalis vaatamegi SELECT
lause erinevaid osi. Kuna päringulause SELECT
on üks pikemaid lauseid SQLis, mis koosneb erinevatest osadest, kus järjekord on oluline, siis paneme selle lause kokku ositi. Tervikliku lause näited on õppematerjalis Päringulause (jätk).
SELECT lause
Esimeses praktikumis käsitlete kõige lihtsamaid päringuid.
SELECT */{<veeruavaldised>} FROM {<tabel>} [ WHERE {<tingimus>}]; |
Näited kõige lihtsamatest päringutest on:
Soovides väljastada kõiki kirjeid ja kõiki tunnuseid:
SELECT * FROM isikud; |
Soovides väljastada ainult ees- ja perenime kõikide kirjete korral:
SELECT eesnimi, perenimi FROM isikud; |
Soovides väljastada ainult erinevad eesnimed kõikide kirjete korral:
SELECT DISTINCT eesnimi FROM isikud; |
Soovides väljastada ainult ees- ja perenimed kõikide meessoost isikute korral:
SELECT eesnimi, perenimi FROM isikud WHERE sugu= 'm' ; |
Päringutulemust kitsendavaid tingimusi võib ka olla enam, näiteks kui soovime väljastada nende isikute ees- ja perenimesid, kes on meessoost ja kelle ränking on enam kui 2000. Siis kirjutame:
SELECT eesnimi, perenimi FROM isikud WHERE sugu= 'm' AND ranking>2000; |
Vaata videost, kuidas koostada päringud DBeaveris:
Kui soovid oma teadmisi kontrollida, ava test
Esimeses praktikumis vaatate, mis võib olla SELECT lauses veeruavaldiseks ja ka mõningaid funktsioone, mida saab kasutata nii väljastatavate kirjete piiramiseks kui ka veeruavaldisena. Mõningad enam kasutatavad funktsioonid ka siia:
Funktsioonid päringulauses
Funktsioonid jagunevad mitteagregeeritud ja agregeeritud funktsioonideks. Agregeerivad funktsioonid annavad kõigi päringusse minevate olemite peale ühe tulemuse. Mitteagregeerivad funktsioonid annavad igale funktsioonile vastava kirje kohta ühe tulemuse. Näiteks kui kasutate funktsiooni LENGTH(eesnimi)
, siis see annab iga kirje puhul selle eesnime pikkuse. LENGTH
on mitteagregeeriv funktsioon. Agregeeriv funktsioon võib olla näiteks kõik teatud tunnuse väärtuste summa, nende arv (loendamise tulemus) või aritmeetiline keskmine. Alustame mõnedest olulisematest mitteagregeeritud funktsioonidest. Agregeerimata funktsioon rakendub kirjele, agregeeriv funktsioon korraga kõikidele kirjetele.
Funktsiooni nimi |
Kirjeldus |
Näidis | |
---|---|---|---|
|
Väljastab väljana määratletud ajaühiku (aasta, kuu vms) ajalise andmetüübiga tunnusest |
| |
|
Väljastab ajaosana ('year', 'month' jne) määratletud ajaühiku ajalise andmetüübiga tunnusest |
| |
|
Lahutab esimese ajalise andmetüübiga veerust teise ajalise andmetüübiga veeru. Veeru asemel võib kasutada ka |
| |
|
Väljastab vasakult nii mitu sümbolit kui on ette antud n |
| |
|
Väljastab paremalt nii mitu sümbolit kui on ette antud n |
| |
|
Väljastab sümbolite arvu |
| |
|
Väljastab vasakult loendades alates n.-ndast sümbolist m sümbolit. NB! Loendamist alustatskse number 1st! |
| |
|
Teisendab argumendiks oleva väärtuse suurtähtedeks |
| |
|
Teisendab argumendiks oleva väärtuse väiketähtedeks |
| |
|
ümardab väärtuse n kohta pärast koma, kui n on negatiivne, siis näitab see kohti enne koma (näiteks -1 kümnelisteni, -2 sajalisteni jne) |
|
Ja enamkasutatavad agregeerivad funktsioonid:
Funktsiooni nimi |
Kirjeldus |
Näidis | |
---|---|---|---|
AVG()
| leiab aritmeetilise keskmise |
| |
COUNT()
| loendab |
| |
MAX()
| maksimaalne väärtus |
| |
MIN()
| minimaalne väärtus |
| |
SUM()
| liidab kokku |
|
Kõik PostgreSQL funktsioonid leiad lingilt: https://www.postgresql.org/docs/14/functions.html
Vaata videost, kuidas kasutada päringus erinevaid funktsioone:
Tarkvara paigaldamine ja mis faile on vaja esitada kodutööde puhul | Andmetüübid |