1. Primaarvõti (Primary Key)
Primaarvõti on veerg või veergude kombinatsioon, mis unikaalselt identifitseerib iga rea tabelis. See ei tohi sisaldada NULL-väärtusi.
CREATE TABLE Õpilased (
ÕpilaseID INT PRIMARY KEY,
Nimi VARCHAR(100),
Klass VARCHAR(10)
);
2. Välisvõti (Foreign Key)
Välisvõti on veerg, mis viitab teise tabeli primaarvõtmele, luues seose kahe tabeli vahel.
CREATE TABLE Registreerimised (
RegistreerimiseID INT PRIMARY KEY,
ÕpilaseID INT,
KursuseID INT,
FOREIGN KEY (ÕpilaseID) REFERENCES Õpilased(ÕpilaseID),
FOREIGN KEY (KursuseID) REFERENCES Kursused(KursuseID)
);
3. Unikaalne võti (Unique Key)
Unikaalne võti tagab, et veeru väärtused on kordumatud, kuid võivad sisaldada NULL-väärtusi.
CREATE TABLE Kasutajad (
KasutajaID INT PRIMARY KEY,
Email VARCHAR(100) UNIQUE,
Telefon VARCHAR(20)
);
4. Lihtvõti (Simple Key)
Lihtvõti on üksik veerg, mis toimib võtmena (nt primaarvõti).
CREATE TABLE Töötajad (
TöötajaID INT PRIMARY KEY,
Nimi VARCHAR(100)
);
5. Komposiitvõti (Composite Key)
Komposiitvõti koosneb mitmest veerust, mis koos tagavad rea unikaalsuse.
CREATE TABLE TellimuseDetailid (
TellimusID INT,
TooteID INT,
Kogus INT,
PRIMARY KEY (TellimusID, TooteID)
);
6. Kompleksvõti (Compound Key)
Sarnaselt komposiitvõtmele, kuid rõhutab, et ükski veerg eraldi ei taga unikaalsust.
CREATE TABLE Inimesed (
Eesnimi VARCHAR(50),
Perekonnanimi VARCHAR(50),
Sünniaeg DATE,
PRIMARY KEY (Eesnimi, Perekonnanimi, Sünniaeg)
);
7. Supervõti (Superkey)
Supervõti on veergude kombinatsioon, mis unikaalselt identifitseerib rea, kuid võib sisaldada liigseid veerge.
CREATE TABLE Õpilased (
ÕpilaseID INT,
Email VARCHAR(100),
Telefon VARCHAR(20),
PRIMARY KEY (ÕpilaseID),
-- Supervõti: ÕpilaseID + Email
);
8. Kandidaatvõti (Candidate Key)
Kandidaatvõti on minimaalne supervõti, ilma liigsete veergudeta. Tabelil võib olla mitu kandidaati.
CREATE TABLE Kodanikud (
Isikukood VARCHAR(11),
PassiNumber VARCHAR(20),
Nimi VARCHAR(100),
UNIQUE (Isikukood),
UNIQUE (PassiNumber)
);
9. Alternatiivvõti (Alternate Key)
Alternatiivvõti on kandidaatvõti, mida ei ole valitud primaarvõtmeks.
CREATE TABLE Kliendid (
KliendiID INT PRIMARY KEY,
Email VARCHAR(100) UNIQUE -- alternatiivvõti
);

