Upravljanje tabel

Omejitve

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.


Ustvarjanje tabele »film«, ki jo uporabljamo v primerih
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.