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

Sissejuhatus andmebaasidesse 2024/25 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äringulause (algus)
  4. LIKE operaator
  5. Päringud funktsioonidega
  6. Päringulause (jätk)
  7. Päringud mitmest tabelist
  8. Tabelite loomine. Kirjete lisamine ja muutmine
  9. Tabelite muutmine
  10. Vaated
  11. Kordamine
  • Paaristöö: Oma mudel
  • Viited


Päringud mitmest tabelist

Siiani oleme vaadanud näiteid, kus on päringud ühe tabeli põhjal, kuid erinevatest tabelite andmeid on võimalik kombineerida. Võimalik on kombineerida ükskõik kui palju tabeleid seostades need päringus. Nii saab luua palju kasulikke päringuid, kui tabelite vahel on mingi seos. Näiteks kui teame, et lemmikloomad on seotud omanikuga välisvõtme omanik_id abil, siis saame päringuga vaadata, millised loomad kuuluvad millisele omanikule.

SELECT omanikud.eesnimi, omanikud.perenimi, lemmikloomad.nimi
FROM lemmikloomad, omanikud
WHERE lemmikloomad.omanik_id=omanikud.id;

SELECT lause esimeses osas täpsustame, milliseid veerge tahame pärida. Näites näed, et veergude juures on täpsustatud ka, millisest tabelist veerg pärit on (kirjapilt tabelinimi.veerunimi). Üldiselt ei ole vaja seda märkida, vaid saab ka lihtsalt veeru nime välja kirjutada, aga mõnikord on seda selguse mõttes hea teha, kui kahel tabelil on näiteks sama nimega veerg. Lause FROM osas täpsustame, millistest tabelitest me infot soovime saada. Lõpuks tuleb WHERE osas märkida, kuidas need tabelid omavahel seotud on, mille tulemusena ühendati kõik lemmikloomad omanikega. Siin on alamtabelil tunnus omanik_id ning ülemtabelil tunnus id. Kuna aga id on igas tabelis, siis omanikud.id peab olema kindlasti kirjutatud kasutades nii tabeli- kui ka veerunime.

Kõiki eelpoolvaadatud SELECT lauseosi, funktsioone ja piiranguid saab ka selliste päringute juures kasutada. Näiteks

SELECT eesnimi, perenimi, COUNT(nimi) AS arv
FROM omanikud, lemmikloomad
WHERE lemmikloomad.omaniku_id=omanikud.id
GROUP BY eesnimi, perenimi
HAVING COUNT(nimi)>2
ORDER BY 3 DESC;

Selle lausega me siis väljastame omanike eesnimed ja perenimed ning nende loomade arvu juhul kui neil on enam kui 2 looma. Tulemustabel järjestatakse kahanevalt.

Üldjuhul saab jälgida järgnevaid punkte mitut tabelit siduvate päringute loomiseks:

  • SELECT lause esimenes osas pane kirja otsitavad tunnused (vajadusel koos funktsioonidega).
  • FROM osas on kirjas kõik tabelid, mille veerunimed on päringulauses (NB! vaata ka, kas pole piirangutes mõnda tunnust teisest tabelist).
  • WHERE osas pane alguses kirja, kuidas tabelid omavahel seotud on. Ülemtabeli primaarvõti on seotud alamtabeli välisvõtmega. Neil peab olema sama andmetüüp.
  • Vajadusel lisa piiranguid.
  • Vajadusel lisa teisi päringulause osi.
  • Kontrolli veel üle, kas kõik tabelid said kirja pandud ning seostatud.
Päringulause (jätk)Tabelite loomine. Kirjete lisamine ja muutmine
  • 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