andmebaasid - ut · panna tabeli “turniir” veeru “nimetus” nimeks “nimi” kustutada...
TRANSCRIPT
![Page 1: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/1.jpg)
Andmebaasid
II praktikum
Tabelite loomine, veergude ja
tabelite kitsendused
![Page 2: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/2.jpg)
TABELITE LOOMINE
2
![Page 3: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/3.jpg)
Tabelite liigid
• Baastabel
(reaalselt eksisteeriv, sisaldab andmeid, andmeid saab muuta)
• Ajutine baastabel
(sessioonipõhine)
• Vaade (lihtsustus, andmeid võib saada muuta)
(edaspidi vaadet tabeliks ei kutsu!)
3
![Page 4: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/4.jpg)
Süntaks
• CREATE TABLE <nimi> ( ....);
– Sulgudes (komaga eraldatult):
• Veergude definitsioonid
• Tabeli üldised kitsendused (constraints)
4
![Page 5: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/5.jpg)
Veeru definitsioon
Veeru nimi
Veeru andmetüüp
[NOT NULL]
[DEFAULT <vaikeväärtus>]
[kitsendused]
5
![Page 6: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/6.jpg)
Andmetüübid (1) CHAR – 1 sümbol
VARCHAR (maksimaalne pikkus) (sümbolid = string)
LONG VARCHAR (=TEXT)
INTEGER – 4 baiti, SMALLINT – 2 baiti
BIGINT – 8 baiti, TINYINT – 1 bait
DECIMAL (kogupikkus, komatagune pikkus)
NUMERIC (kogupikkus, komatagune pikkus)
FLOAT – 4 baiti reaalarv
REAL – 4 baiti reaalarv
DOUBLE – 8 baiti reaalarv
6
![Page 7: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/7.jpg)
Andmetüübid (2)
DATE – 4 baiti
DATETIME – 8 baiti
TIME – 8 baiti (string)
BIT (väärtus 0 või 1 NULL pole lubatud) – 1 bait
BINARY (max pikkus) 1 kuni 32767 vaikimisi 1 bait
LONG BINARY max väärtus 2GB -1
7
![Page 8: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/8.jpg)
Vaikeväärtused
CURRENT ...
CURRENT_TIME, CURRENT_DATE,
CURRENT_TIMESTAMP, CURRENT_USER
AUTOINCREMENT
NULL (taastamiseks)
8
![Page 9: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/9.jpg)
Vaikeväärtused (SQL Anywhere)
CURRENT - alakriipsu asemel tühik!
CURRENT TIMESTAMP, ...
TIMESTAMP
Täiendavalt, NB! Ilma sõnata CURRENT!
GLOBAL AUTOINCREMENT
Replikeerimise jaoks
9
![Page 10: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/10.jpg)
Veeru kitsendused
• [CONSTRAINT <nimi>] {UNIQUE | PRIMARY KEY |
CHECK (tingimus)}
– NB! Tingimus sisaldab veeru nime
kaugus INTEGER NOT NULL CHECK (kaugus > 50)
• (SQL Anywhere) veel lisaks: COMPUTE (avaldis)
(Tekib read-only veerg)
10
![Page 11: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/11.jpg)
Tabeli kitsendused
• Hõlmavad üldjuhul rohkem kui ühte veergu
CONSTRAINT pk_isik PRIMARY KEY (eesnimi, perenimi,
synnipaev);
CONSTRAINT chk_palk CHECK (brutopalk > netopalk);
11
![Page 12: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/12.jpg)
Tabeli kustutamine
• DROP TABLE <nimi>;
12
![Page 13: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/13.jpg)
Ülesanne nr 2
Luua 4 tavalist tabelit:
Isik
Id integer not null default autoincrement primary key
Eesnimi varchar (50) not null
Perenimi varchar(50) not null
Isikukood varchar(11)
Klubi integer
Unique (eesnimi, perenimi)
13
![Page 14: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/14.jpg)
Klubi
Id integer not null default autoincrement primary key
Nimi varchar(100) not null unique
Turniir
Id integer not null default autoincrement primary key
Nimetus varchar(100) not null unique
Toimumiskoht varchar(100)
Alguskuupaev date not null
Loppkuupaev date
Ülesanne nr 2 (järg)
14
![Page 15: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/15.jpg)
Partii
Id integer not null default autoincrement primary key
Turniir integer not null
Algushetk datetime not null default current timestamp
Lopphetk datetime
Valge integer not null
Must integer not null
Valge_tulemus smallint check (valge_tulemus in (0,1,2))
Musta_tulemus smallint check (musta_tulemus in (0,1,2))
Kokkuvote varchar(5000)
Ülesanne nr 2 (järg)
15
![Page 16: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/16.jpg)
MASSANDMED
SISESTAMINE FAILIST
16
![Page 17: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/17.jpg)
INPUT
INPUT INTO <tabel> FROM <fail> FORMAT
{ASCII | DBASEIII | FOXPRO | ....} [{veerud}]
[DELIMITED BY <eraldaja>];
Formaadil ASCII on vaikimisi eraldaja koma (,)
Eraldajaks võib olla suvaline string.
Tab- eraldatud faili kasutamiseks kood 9
17
![Page 18: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/18.jpg)
INPUT näited
INPUT INTO klubi FROM 'klubi.txt' FORMAT
ASCII DELIMITED BY '\x09';
INPUT INTO isik FROM 'isik.txt' FORMAT
ASCII DELIMITED BY '\x09' (id, eesnimi, perenimi, klubi);
Andmed Moodle’is:
Praktikumid -> Andmed (pakitud zip-failina)
18
![Page 19: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/19.jpg)
TABELI DEFINITSIOONI
MUUTMINE
19
![Page 20: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/20.jpg)
Tabeli muutmise 4 tegevust
Nimemuutused: • Tabeli nime muutmine
• Veeru nime muutmine
• Kitsenduse nime muutmine
Struktuurimuutused: Veergude/kitsenduste lisamine
Veergude/kitsenduste muutmine
Veergude/kitsenduste kustutamine
20
![Page 21: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/21.jpg)
Nimemuutused
Miks seda vaja on?!
Selguse huvides või veerus olevate andmete tõlgenduse muutumisel.
Tabeli nime muutmine: ALTER TABLE <tabel> RENAME <uusnimi>;
Veeru nime muutmine: ALTER TABLE <tabel> RENAME <veerunimi> TO <uusveerunimi>;
(Sarnaselt veerunimega toimitakse ka kitsenduse nimega)
21
![Page 22: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/22.jpg)
Nimemuutuse näidis
Veeru nime muutmine:
ALTER TABLE turniir RENAME nimetus TO nimi;
22
![Page 23: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/23.jpg)
Veeru või kitsenduse lisamine
Näiteks: ALTER TABLE klubi ADD asukoht varchar(50)
NOT NULL DEFAULT 'Tartu';
Def:
ALTER TABLE <tabel> ADD {definitsioon};
Kontrolli jaoks: SELECT * FROM klubi
23
![Page 24: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/24.jpg)
Nimelise kitsenduse lisamine
ALTER TABLE isik ADD CONSTRAINT
un_nimi UNIQUE (eesnimi, perenimi);
24
![Page 25: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/25.jpg)
Veeru või kitsenduse kustutamine
Näiteks:
ALTER TABLE isik DROP CONSTRAINT un_nimi;
ALTER TABLE isik DROP UNIQUE (eesnimi, perenimi);
Def:
ALTER TABLE <tabel> DROP {<veerg> |
CONSTRAINT <kitsendus> | {kitsenduse def}};
25
![Page 26: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/26.jpg)
Kitsenduse muutmine Ainult CHECK on muudetav
ALTER TABLE <tabel> ALTER
<kontrollikitsendus> CHECK ({uus reegel});
Siin eraldi näidet ei tee lisame hoopis veel ühe kitsenduse
ALTER TABLE partii ADD CONSTRAINT
vastavus CHECK (valge_tulemus + musta_tulemus = 2);
Mis kitsendusega on tegemist?
26
![Page 27: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/27.jpg)
Veeru muutmine
ALTER TABLE <tabel> ALTER <veerg> {uuendus};
uuendus:
SET DEFAULT {vaikeväärtus}
{ADD | DROP} CONSTRAINT <kitsendus> {def};
On võimalik anda algväärtus.
On võimalik lisada või kustutada kitsendus.
Uus veerudefinitsioon ei ole standardiga lubatud!
27
![Page 28: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/28.jpg)
Veerudefinitsiooni muutmine (standardi järgi)
SQL standard – (pikk tee (4 sammu)):
ALTER TABLE klubi ADD asukoht70
varchar(70) NOT NULL DEFAULT 'Tartu';
UPDATE klubi SET asukoht70 = asukoht;
ALTER TABLE klubi DROP asukoht;
ALTER TABLE klubi RENAME asukoht70 TO asukoht;
28
![Page 29: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/29.jpg)
Välisvõti (Foreign key)
• Välisvõti on seos kahe tabeli vahel.
• Võtmeveeru lubatud väärtused on defineeritud
teises tabelis. (Välisvõti on kitsendus).
– Tavamõtlemine: teise tabeli primaarvõti
Tegelikult lubatud suvaline võti (nn unikaalsuskitsendus).
• Seosel on nimi.
• Seos on veeru (või veergude komplekti) “küljes”.
29
![Page 30: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/30.jpg)
Loogilised seosed (olemasolevates tabelites)
Isik (klubi) -> Klubi (id; nimi)
Partii (valge) -> Isik (id; eesnimi, perenimi)
Partii (must) -> Isik (id; eesnimi, perenimi)
Partii (turniir) -> Turniir (id; nimi)
Alamtabel -> Ülemtabel
30
![Page 31: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/31.jpg)
Ülemtabeli muutused
Mida saab ülemtabeliga teha:
Kustutada kirje (DELETE)
Muuta unikaalsust (võtme väärtust)
(UPDATE)
31
![Page 32: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/32.jpg)
FK-ga defineeritud käitumine
Kuidas peab ABS käituma, kui tehakse midagi ülemtabeli
kirjega, mis võib mõjutada alamtabelit?
Keela tegevus (RESTRICT) - vaikimisi tegevus
Proovi kaasa minna (CASCADE)
Tühista seos (SET NULL)
Loo seos teatud teise kirjega (SET DEFAULT)
32
![Page 33: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/33.jpg)
FK näidis
Välisvõti isiku ja klubi tabeli vahel, mis seob väljad isik.klubi
ja klubi.id:
ALTER TABLE isik ADD CONSTRAINT fk_isik_2_klubi
FOREIGN KEY (klubi)
REFERENCES klubi (id)
ON DELETE RESTRICT ON UPDATE CASCADE;
Kehtestab kontrolli: veerus isik.klubi tohivad olla vaid veeru
klubi.id väärtused.
33
![Page 34: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/34.jpg)
FK loomise süntaks
ALTER TABLE <tabel> ADD CONSTRAINT <fk_nimi>
FOREIGN KEY ({veerud})
REFERENCES<ülemtabel>[({võtmeveerud})]
[ON DELETE {tegevus}] [ON UPDATE {tegevus}];
34
![Page 35: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/35.jpg)
Optimiseerimisnõks
• Töötamisel suurte mahtudega:
– Luua struktuurid ilma võtmeteta ja
seosteta
– Importida sisse andmed
– Luua võtmed ja seosed (ning indeksid)
• Eelduseks on kvaliteetsed andmed!!!
35
![Page 36: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/36.jpg)
Ülesanne (neile, kes praktikumis ei teinud)
Lisada andmed kahest TAB-eraldatud tekstifailist (klubi.txt, isik.txt) – (NB!
pakitud zip-faili).
Panna tabeli “turniir” veeru “nimetus” nimeks “nimi”
Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et
korduvaid nimesid poleks (kui taipasite nime omistada, siis ikkagi võtta maha).
Lisada sama sisuga kitsendus, kuid nimeks saagu “un_nimi”
Samasugune operatsioon tabeliga “turniir” (nime unikaalsuskitsenduse nimeks
saagu “un_nimi”)
Lisada tabelisse “klubi” asukoha jaoks kohustusliku täitega veerg, mille
vaikeväärtus (sh kõigil olemasolevatel) oleks “Tartu”, pikkusega 50.
Muuta standardijärgsete käskudega sama veeru pikkuseks 70.
36
![Page 37: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/37.jpg)
Ülesanne 3
Luua 4 välisvõtit (kustutamiskeeluga, va. ühel erandjuhul)
Isik -> klubi
Partii -> Turniir – nii, et turniiri kustutamisel kaoksid kõik selle turniiri
partiid
Partii -> Isik (Valgetega mängija)
Partii -> Isik (Mustadega mängija)
Teha läbi näited:
Klubi kustutamine (ei õnnestu, kuna sellele viitab isikuid)
Klubi id muutmine (õnnestub, isikute klubi id muutub samuti)
Pärast välisvõtmete lisamist vaadata ER diagrammi Sybase Centralist.
37
![Page 38: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/38.jpg)
Kokkuvõtvalt: Andmete sisestus muutmine ja kustutamine
38
![Page 39: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/39.jpg)
INSERT
• Kaks võimalust: Kas kirje kaupa või päringu põhjal
(vaatleme esimest)
• Vaikeväärtuste toimimine
INSERT INTO <tabel> ({veerud}) VALUES ({väärtused})
Väärtused:
– Literalid (numbrid, kümnenderaldajaks punkt)
– Stringid – ülakomade vahel
– Kuupäevad – ülakomade vahel: 'yyyy-mm-dd'
– Muutujad (current date jms)
39
![Page 40: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/40.jpg)
INPUT
INPUT INTO <tabel> FROM <fail> FORMAT
{ASCII | DBASEIII | FOXPRO | ....} [{veerud}]
[DELIMITED BY <eraldaja>];
Formaadil ASCII on vaikimisi eraldaja koma (,)
Eraldajaks võib olla suvaline string.
Tab- eraldatud faili kasutamiseks kood 9
40
![Page 41: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/41.jpg)
Muutmine (UPDATE)
• UPDATE <tabel> SET <veerg> = <väärtus> WHERE <tingimus>; – (=NULL ei ole lubatud)
– Tingimus – vaatame esialgu lihtsamat varianti: võtmevälja tingimus
41
![Page 42: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/42.jpg)
KUSTUTAMINE
DELETE FROM <tabel> WHERE <tingimus>;
NB! Mis juhtub, kui tingimus ÄRA UNUSTADA?
42
![Page 43: Andmebaasid - ut · Panna tabeli “turniir” veeru “nimetus” nimeks “nimi” Kustutada tabelist “isik” maha nimetu unikaalsuskitsendus, mis tagas, et korduvaid nimesid](https://reader033.vdocuments.site/reader033/viewer/2022053016/5f19648e914153087061d767/html5/thumbnails/43.jpg)
Ülesanne 3 (järg)
• Lisada veel andmeid kahest TAB-eraldatud
tekstifailist (turniir.txt, partii.txt) – (NB! pakitud zipfaili).
• NB! Vaadake üle andmete struktuur ja tabeli struktuur
ja valige vastavalt failis olevatele andmetele
andmeväljad tabelis!!!
43