PRIMARY KEY

Primary key (esmane võti) identifitseerib iga rea tabelis üheselt. Ei luba NULL-väärtusi ega duplikaate.

CREATE TABLE Opliased(
opilaseId int PRIMARY KEY identity (1,1),
eesmimi varchar(30),
perenimi varchar(30),
synniaeg date
);

Siin opilaseId on Primary Key.

FOREIGN KEY

Foreign key (võõrvõti) viitab teise tabeli primary key’le ja loob seose tabelite vahel.

CREATE TABLE HINDED(
HineteID int PRIMARY KEY identity (1,1) ,
opilaseId int,
Aine varchar(50),
Foreign Key (opilaseId) REFERENCES Opliased(opilaseId)
);

opilaseId tabelis HINDED on Foreign Key.

UNIQUE KEY

Unique key tagab, et veeru väärtused on unikaalsed. Võib (olenevalt süsteemist) lubada ühte NULL-väärtust.

CREATE TABLE Kasutajad (
    Kasutaja_id INT PRIMARY KEY,
    Kasutajanimi VARCHAR(50) UNIQUE,
    email VARCHAR(100) UNIQUE
);

Kasutajanimi ja email on Unique Key.

SIMPLE KEY

Simple key (lihtvõti) koosneb ühest veerust ja identifitseerib kirje üheselt.





CREATE TABLE Tooted (
   Toote_id INT PRIMARY KEY,
    name VARCHAR(100)
);

COMPOSITE KEY

Composite key (liitvõti) koosneb kahest või enamast veerust.

CREATE TABLE Registreerimine (
    Opilase_id INT,
    Kursuse_id INT,
    PRIMARY KEY (Opilase_id, Kursuse_id)
);

Kombinatsioon (Opilase_id, Kursuse_id) on Composite Key.

COMPOUND KEY

Compound key kasutatakse enamasti sünonüümina composite key’le (mitmest veerust koosnev võti).

CREATE TABLE TellitudAsjad (
    tellimuse_id INT,
    toote_id INT,
    kogus INT,
    PRIMARY KEY (tellimuse_id, toote_id)
);
SUPERKEY

Superkey on ükskõik milline veergude kombinatsioon, mis identifitseerib rea unikaalselt.
Seda ei defineerita SQL-is eraldi – see on loogiline mõiste.


Kui student_id on primary key, siis ka kombinatsioon
(student_id, email) on superkey, kuigi email pole vajalik.
CREATE TABLE Students (
    student_id INT PRIMARY KEY,
    national_id VARCHAR(20) UNIQUE,
    email VARCHAR(100) UNIQUE,
    name VARCHAR(100)
);

CANDIDATE KEY

Candidate key (kandidaatvõti) on minimaalne superkey. Üks neist valitakse primary key’ks.

CREATE TABLE Citizens (
    citizen_id INT PRIMARY KEY,
    passport_number VARCHAR(20) UNIQUE,
    national_id VARCHAR(20) UNIQUE
)

Siin:

  • citizen_id
  • passport_number
  • national_id

on kõik candidate key’d (unikaalsed).
Primary key on neist ainult citizen_id.

ALTERNATE KEY

Alternate key on candidate key, mida ei valitud primary key’ks.

Eelmises näites:

  • passport_number
  • national_id

on Alternate Key’d.