Institute of Computer Science
  1. Courses
  2. 2023/24 fall
  3. Introduction to Databases (MTAT.03.105)
ET
Log in

Introduction to Databases 2023/24 fall

  • 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


Tabelite muutmine

Tabelite muutmiseks on erinevaid võimalusi. Üldiselt saab neid jaotada kaheks suuremaks kategooriaks - nimemuutused ja struktuurimuutused.


Nimemuutused

Nimemuutuste all peetakse silmas tabeli enda nime või siis veergude ning kitsenduste nimede muutmist. Peamiselt tuleb nimetatud võimalusi kasutada, et tabelit selgemaks teha. Näiteks juhul, kui mingi tabeli veeru nimi ei anna head ülevaadet veerus olevatest andmetest, oleks mõistlik nime muuta.

Tabeli nime muutmise üldkuju on järgnev:

ALTER TABLE <tabel> RENAME TO <uus nimi>;

Veeru nime muutmiseks tuleks kasutada SQL lauset:

ALTER TABLE <tabel> RENAME COLUMN <vana veeru nimi> TO <uus veeru nimi>;

Ning lõpuks kitsenduse nime muutmine toimub järgneva lausega:

ALTER TABLE <tabel> RENAME CONSTRAINT <vana kitsenduse nimi> TO <uus kitsenduse nimi>;
Struktuurimuutused

Struktuurimuutuste all mõeldakse tabelisse uute veergude ning kitsenduste lisamist ning kustutamist. Veel on võimalik muuta olemasolevate veergude omadusi. Allpool on välja toodud peamised struktuuri muutmise SQL laused tabeli juures.

Tabelisse veeru lisamiseks ja kustutamiseks saab kasutada lauseid:

ALTER TABLE <tabel> ADD COLUMN <veeru definitsioon>;
ALTER TABLE <tabel> DROP COLUMN <veeru nimi>;

Näiteks:

ALTER TABLE tudengid ADD elukoht varchar(40) NOT NULL DEFAULT 'Tartu';
ALTER TABLE tudengid DROP COLUMN elukoht;

Tabelisse saab kitsendust lisada ja kustutada lausetega:

ALTER TABLE <tabel> ADD CONSTRAINT <kitsenduse nimi> <kitsenduse defintisioon>;
ALTER TABLE <tabel> DROP CONSTRAINT <kitsenduse nimi>;
Välisvõtme lisamine

Välisvõti on sisuliselt kitsendus, seega lisame kitsenduse välisvõti. Süntaks:

ALTER TABLE <alamtabel> 
ADD CONSTRAINT <fk_nimi> 
FOREIGN KEY ({alamtabeli_veerg}) 
REFERENCES <ülemtabel>[({võtmeveerg})] 
[ON DELETE {tegevus}]
[ON UPDATE {tegevus}];

Siin alamtabel on see tabel, millest nool lähtub ja ülemtabel, millesse nool suundub. Näiteks meil on lemmikloomad ja eraldi tabel loomaliigid. Viimases on sellised väärtused nagu koer, kass, hamster jms. Neil on omavahel 1:n seos (ühest liigist saab olla mitu looma, aga üks loom kuulub ühe liigi alla). Seega alamtabeliks on lemmikloomad ning ülemtabeliks loomaliigid. Oletame, et lemmikloomade tabelis on välisvõtmeks veerg liigi_id.

ALTER TABLE Lemmikloomad
ADD CONSTRAINT fk_lemmikloomad2liigid
FOREIGN KEY liigi_id
REFERENCES Loomaliigid(id)
ON DELETE RESTRICT
ON UPDATE CASCADE;

Siin lõime välisvõtme Lemmikloomade tabeli väljast liigi_id Loomaliikide primaarvõtmesse id, milles siis ülemtabelis kustutamine on keelatud, kui alamtabelis on sellist liiki loomi (näiteks ei tohi kustutada liiki hamster, kui Lemmikloomade tabelis on hamstreid), aga muutmisega minnakse kaasa. Viimane siis tähendab, et kui näiteks hamstri id muudetakse (pole enam 3, vaid 5), siis ka kõikidel hamstritel, kes on Lemmikloomade tabelis liigi_id, mis oli 3 muutub 5ks.

Selleks,et kustutada tabelist kõik kirjed tuleb kasutada käsku (tabel ise jääb alles):

DELETE FROM <tabel>;


Tabelite loomine. Kirjete lisamine ja muutmineVaated
  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment