Sissejuhatus
Esimalt paigaldame enda arvutitesse vajaliku tarkvara praktikumide edukaks läbimiseks, seadistame esimese PostgreSQL andmebaasi ning loome sinna ka tabeli, kasutades SQL päringukeelt. Praktikumi käigus saad sooritada erinevaid enesekontrolli teste. Testide tulemusi ei salvestata ning nende eesmärk on aidata sul kinnistada praktikumis õpitut.
Kursuse raames on meil vaja installeerida kaks programmi. Esimene on PostgreSQL andmebaasihadustarkvara. Teiseks on meil vaja inimloetaval kujul näha, mis meie loodud andmebaasis ja tabelites toimub. Selleks kasutame kliendipoolsest tarkvara DBeaverit.
Enne kui asud allpool olevate tegevuste juurde, veendu, et oled kogu vajaliku tarkvara enda arvutisse paigaldanud läbides Tarkvara paigaldamine peatüki.
Tutvume nüüd SQL päringukeelega ning kastutame seda enda andmebaasis esimese tabeli loomiseks. SQL (ingl Structured Query Language) päringukeelt kasutatakse peamiselt andmebaasidesse tabelite loomiseks, andmete muutimseks, lisamiseks, kustutamiseks ning andmebaasist andmete kättesaamiseks. SQL on loodud IBM poolt aastal 1974.
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.
Päringu üldsüntaks kõige lihtsamal kujul on järgnev:
SELECT veerg1, veerg2, ... FROM <tabel>;
Väljatoodud käsuga on võimalik valida mingi hulk veerge mingist tabelist ning kuvada need SQL konsoolis. Näiteks kui on vaja tabelist lemmikloomapoed vaadata ainult veerus riik olevaid kirjeid saab seda teha käsuga:
SELECT riik FROM lemmikloomapoed;
.
Kõiki tabelis olevaid kirjeid koos iga veeruga saab vaadata SQL lausega:
SELECT * FROM <tabel>;
Selleks, et mingist veerust saada kätte ainult erinevaid väärtuseid, saab kasutada DISTINCT
märksõna.
SELECT DISTINCT riik FROM lemmikloomapoed;
Käsk kuvab meile kõik veerus riik olevad mittekorduvad väärtused.
Kõige lihtsam viis sellest arusaamiseks ongi proovida DBeaveri SQL konsoolis läbi SELECT käsud erinevate veergude kombinatsioonidega. Proovi DBeaveris erinevaid SELECT käsu kombinatsioone tabelite lemmikloomad
ja lemmikloomapoed
peal.
SELECT lausetele saab lisada ka erinevaid piiranguid peale, kasutades WHERE
võtmesõna.
SELECT veerg1, veerg2, ... FROM <tabel> WHERE {<loogiline avaldis>};
Päringuid piirame, kui meil on vaja vaadata mingeid kindlaid väärtuseid veergudes. Näiteks käsk
SELECT * FROM lemmikloomapoed WHERE riik = 'Eesti';
kuvab meile tabelis lemmikloomapoed kõik kirjed, kus veeru riik väärtuses on 'Eesti'. Loogilist avaldist saab ka vastupidiseks pöörata, kirjutades selle ette NOT
märksõna. Näiteks SELECT * FROM lemmikloomapoed WHERE NOT riik = 'Eesti';
.
WHERE avaldises saab kasutada palju erinevaid operaatoreid. Mõned tuntumad on =, <, >, <=, >= ja <> (!=)
.
Näiteks:
SELECT * FROM lemmikloomapoed WHERE Töötajate_arv < 7
Märksõnale WHERE saab lisada mitu loogilist avaldist. Seda tehakse AND
ja OR
märksõnadega. AND
tähendab, et mõlemal pool märksõna olevad avaldised peavad olema tõesed. OR
tähistab, et üks OR
sõnaga eraldatud avaldistest peab olema tõene. Mõlemat märksõna võib kasutada ka rohkem kui ühe korra ühes avaldises.
Lause:
SELECT * FROM lemmikloomapoed WHERE Töötajate_arv < 7 AND riik = 'Eesti'
tagastab meile tabelist lemmikloomapoed kõik kirjed, kus veeru Töötajate_arv väärtus on väiksem kui 7 JA veeru riik väärtus on 'Eesti', ehk tabeli kirjes peavad olema täidetud mõlemad tingimused.
Aga
SELECT * FROM lemmikloomapoed WHERE Töötajate_arv < 7 OR riik = 'Eesti'
tagastab meile tabelist lemmikloomapoed kõik kirjed, kus veeru Töötajate_arv väärtus on väiksem kui 7 VÕI veeru riik väärtus on 'Eesti', ehk kui tabeli kirjes on üks nendest tingimustest täidetud, siis see kirje kuvatakse meile.
Operaatoritena saab veel kasutada IN, IS ja BETWEEN
märksõnu. BETWEEN
operaatoriga saab piirata tunnust kahe väärtuse vahele ning IN
operaatorit kasutatakse, et kontrollida, kas tunnuse väärtus on olemas mingis järjendis. Ka neid operaatorid saab vastupidiseks pöörata NOT
märksõnaga.
SELECT linn FROM lemmikloomapoed WHERE töötajate_arv BETWEEN 1 AND 7;
SELECT linn FROM lemmikloomapoed WHERE riik IN ('Eesti','Soome');
IS
operaatoriga saab otsida tabelist puuduvaid väärtuseid.
SELECT id FROM lemmikloomapoed WHERE juhatajaid IS NULL;
SELECT id FROM lemmikloomapoed WHERE juhatajaid IS NOT NULL;
IN ja BETWEEN
operaatoreid saab tavaliselt asendada =, <, >, <=, >= ja <> (!=)
operaatoritega, aga IN ja BETWEEN
kasutamine on tunduvalt mugavam, kuna pole vajadust kirjutada mitut AND või OR lauset järjest.
Mis faile on vaja esitada iseseisvate tööde jaoks? | Päringud ja funktsioonid |