Na tem mestu se ne bomo preveč poglobili v omejitve tabele, vendar pa ima lahko vsak stolpec dodatne omejitve, ki omejujejo, katere vrednosti je mogoče vstaviti v ta stolpec. Spodnji seznam vsebuje nekaj najpogostejših omejitev.
Omejitev | Opis |
---|---|
PRIMARY KEY |
Vrednosti v tem stolpcu so edinstvene in vsako vrednost je mogoče uporabiti za identifikacijo posamezne vrstice v tabeli. |
AUTOINCREMENT |
Pri celoštevilskih vrednostih se vrednost samodejno doda ter poveča z vsakim vstavljanjem nove vrstice. Ni podprto v vseh podatkovnih bazah. |
UNIQUE |
Vrednosti v tem stolpcu morajo biti enolične, zato v ta stolpec ne moremo vstaviti druge vrstice z enako vrednostjo. Ni nujno, da je ta vrednost ključ za vrstico v tabeli – kot velja za PRIMARY KEY . |
NOT NULL |
Vstavljena vrednost ne sme biti NULL . |
CHECK (izraz) |
Omogoča uporabo bolj zapletenih izrazov za preverjanje, ali so vstavljene vrednosti veljavne. Preverimo lahko na primer, ali so vrednosti pozitivne, ali večje od določene velikosti, ali se začnejo z določeno predpono itd. |
FOREIGN KEY |
Omogoča preverjanje skladnosti, ki zagotavlja, da vsaka vrednost v tem stolpcu ustreza drugi vrednosti v stolpcu v drugi tabeli. |
CREATE TABLE IF NOT EXISTS film ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, naslov TEXT NOT NULL, reziser TEXT NOT NULL, studio_id TEXT NOT NULL, leto INTEGER NOT NULL, dolzina INTEGER NOT NULL DEFAULT 0, ocena REAL, CONSTRAINT tk_studio_film FOREIGN KEY (studio_id) REFERENCES studio(id) ON DELETE CASCADE ON UPDATE CASCADE );
Entiteta vsebuje naslednje atribute oziroma na fizičnem nivoju tabela vsebuje naslednje stolpce: id
, naslov
, reziser
, studio_id
, leto
, dolzina
in ocena
. Vsi stolpci imajo nastavljeno ustrezno vrsto podatkov, ki jih hranijo ter morebitne omejitve. Poleg tega je pri tabeli nastavljena omejitev tk_studio_film
, ki predstavja povezavo oziroma relacijo med tabelama studio
in film
s pomočjo tujega ključa. Nastavitev tujega ključa smo dosegli z vrstico FOREIGN KEY (studio_id) REFERENCES studio(id)
, ki pove, da je atribut studio_id
tuji ključ, ki se sklicuje na primarni ključ id
v tabeli studio
.
Če iz tabele studio
izbrišemo določen studio, se bodo v tabeli film
izbrisali tudi vsi filmi, povezani s tem studiem preko tujega ključa. To zagotavlja vrstica ON DELETE CASCADE
. Če v tabeli studio
posodobimo primarni ključ id
, ki ni številka, ki bi jo podatkovna baza samodejno nastavljala z AUTOINCREMENT
(česar se v večini primerov izogibamo), potem se bo samodejno posodobil tudi tuji ključ studio_id
. To zagotavlja vrstica ON UPDATE CASCADE
.