Первичный ключ, Внешний ключ, Уникальный ключ, Простой ключ, Составной ключ, Составной ключ, Суперключ, Кандидатный ключ, Альтернативный ключ

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
);

Allikad

  • W3School