Primaarvõti (Primary Key) on tulp, mis aitab iga tabeli kirjet ainulaadselt eristada. Selle väärtused peavad olema kordumatud ning tulp ei tohi sisaldada tühje väärtusi.

Näiteks tabel Student:

StudentIDNimiVanus
1Roman18
2Mark20
3Marek20
4Martin19
CREATE TABLE Student (
    StudentID INT PRIMARY KEY,
    Nimi VARCHAR(50),
    Vanus INT
);


Võõrvõti (Foreign Key) on tulp, mis loob seose kahe tabeli vahel. See näitab, millise teise tabeli kirjega antud kirje on seotud.

Näiteks tabelis TundID (õpingud):

TundIDStudentIDTund
11Andmebaasid
22Robotika
31Veebirakendus

Veerg StudentID on võõrvõti (FK), mis viitab tabeli Student primaarvõtmele.

See määrab, millised õpingud on seotud konkreetse üliõpilasega.

CREATE TABLE Enrollment (
    TundID INT PRIMARY KEY,
    StudentID INT,
    Tund VARCHAR(50),
    FOREIGN KEY (StudentID) REFERENCES Student(StudentID)
);


Unikaalvõti (Unique Key) tagab, et veeru väärtused on kordumatud. Tabelis võib olla mitu unikaalvõtit ning mõnes veerus võib väärtus olla ka tühi (NULL).

Näiteks tabel Employee (töötajad):

EmployeeIDNimiEmail
1Mari Speekmari.speek@tthk.ee
2Paul Alekandpaul.alekand@tthk.ee
3Eduard Brindfeldteduard.brindfeldt@tthk.ee
CREATE TABLE Employee (
    EmployeeID INT PRIMARY KEY,
    Nimi VARCHAR(50),
    Email VARCHAR(100) UNIQUE
);

Veerg Email on unikaalvõti (Unique Key).

See tagab, et iga töötaja e-posti aadress on kordumatu, kuid veerg võib sisaldada ka tühje väärtusi.


Lihtvõti (Simple Key)
Näide: veerg StudentID on lihtvõti, kuna see koosneb ainult ühest veerust.

Lihtsamalt öeldes: lihtvõti koosneb ühest veerust ja identifitseerib tabelis oleva kirje.


Kompoundvõti (Compound Key)
Lihtsamalt öeldes: kompoundvõti koosneb mitmest veerust ja identifitseerib kirjet tabelis. Mõnikord kasutatakse terminit composite key samas tähenduses.

CREATE TABLE OrderDetails (
    OrderID INT,
    ProductID INT,
    Quantity INT,
    PRIMARY KEY (OrderID, ProductID)
);

Ülevõti (Superkey) on ükskõik milline veergude kombinatsioon, mis võimaldab tabeli iga kirjet ainulaadselt tuvastada.

Näiteks tabelis Student:

CREATE TABLE Student (
    StudentID INT,
    Nimi VARCHAR(50),
    Isikukood VARCHAR(20),
    PRIMARY KEY (StudentID),
    UNIQUE (StudentID, Isikukood)  -- see on superkey
);

Candidate Key (kandidaatvõti)


Kandidaatvõti (Candidate Key) on supervõti, mis võiks olla primaarvõti, ehk suudab tabeli iga kirje ainulaadselt identifitseerida.

Näiteks tabelis EmployeeID:

EmployeeIDIsikukoodNimiVanus
201615616516Mari Speek50
20255164545Paul Alekand34
20354165161Eduard Brindfeldt43
CREATE TABLE Employee(
    EmployeeID INT UNIQUE,
    Isikukood VARCHAR(20) UNIQUE,
    Nimi VARCHAR(50),
    Vanus INT,
    PRIMARY KEY (StudentID)
);

Alternate Key (alternatiivvõti)


Alternatiivvõti (Alternate Key) on kandidaatvõti, mida ei kasutatud primaarvõtmena, kuid mis on endiselt unikaalne ja suudab tabeli iga kirje identifitseerida.

Näiteks tabelis Student:

StudentIDIsikukoodNimiVanus
3015000112Mark20
3025100223Marek20
3035200334Roman18
CREATE TABLE Student (
    StudentID INT PRIMARY KEY,
    Isikukood VARCHAR(20) UNIQUE,
    Nimi VARCHAR(50),
    Vanus INT
);
StudentID = Primary Key
Isikukood = Alternate Key

allikas