Arvutiteaduse instituut
  1. Kursused
  2. 2022/23 sügis
  3. Sissejuhatus andmebaasidesse (MTAT.03.105)
EN
Logi sisse

Sissejuhatus andmebaasidesse 2022/23 sügis

  • Kursuse korraldus
  • Loengud
    • Loenguid toetav õpik (autorid: Karl Taal & Piret Luik)
  • Praktikumid
    • Praktikume toetavad materjalid (autorid: Uku Roio & Piret Luik)
  1. Tarkvara paigaldamine
  2. Mis faile on vaja esitada iseseisvate tööde jaoks?
  3. Päringud
  4. Päringud ja funktsioonid
  5. Päringud mitmest tabelist
  6. Tabelite loomine. Kirjete lisamine ja muutmine
  7. Tabelite muutmine
  8. Vaated
  9. Kordamine
  • Paaristöö: Oma mudel
  • Viited

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
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused