Sloupcová omezení při tvorbě tabulky
Defaultní hodnota
Je výchozí hodnota sloupce. Pokud defaultní hodnotu neurčíme, ani neurčíme hodnotu sloupce v příkazu INSERT, je automaticky dosazena hodnota NULL.
Příklad: Dejme tomu, že vyrábíte nějaké výrobky. Datum objednávky dáme defaultně s dnešním dnem.
prodejna=> CREATE TABLE vyrobek ( id_v serial , nazev varchar(15),vyrobeno date default now());
Defaultní hodnotou může být také výraz.
prodejna=> CREATE TABLE vyrobek ( id_v serial , nazev varchar(15),vyrobeno date default current_date, spotrebovat_do date default current_date+5);
prodejna=> CREATE TABLE vyrobek ( id_v serial , nazev varchar(15),vyrobeno date default now(),cena int check(cena>0),pocet_ks int check(počet_ks between 0 and 100));
ekvivalent pro podmínku je check (pocet_ks >= 1 AND a <= 100)
Vlastnost NOT NULL
Zamezení vložení prázdných hodnot do sloupce
Příklad: musí být zadán název výrobku
prodejna=> CREATE TABLE vyrobek ( id_v serial , nazev varchar(15) not null,vyrobeno date default now(),cena int check(cena>0));
Vlastnost UNIQUE
Zamezuje vložení duplicitních hodnot
Příklad: musí být zadán název výrobku a ten se nesmí opakovat
prodejna=> CREATE TABLE vyrobek ( id_v serial , nazev varchar(15) unique not null,vyrobeno date default now(),cena int check(cena>0));
PRIMARY KEY
Označí sloupec, který jedinečně identifikuje řádek. Zamezuje výskytu duplicitních hodnot a prázdných hodnot ve sloupci. Je hlavním indexem tabulky.
Příklad: Hlavní index tabulky vyrobek bude id_v
prodejna=> CREATE TABLE vyrobek ( id_v serial primary key not null, nazev varchar(15),vyrobeno date default now(),cena int);
FOREIGN KEY (cizí klíč)
Sloupcové omezení, které nastavuje cizí klíč pro relaci. Nejdřív je nutné vytvořit odpovídající sloupec a potom ho samostatně nastavíme jako cizí klíč a určíme propojení s druhou tabulkou:
FOREIGN KEY(urceny_sloupec) REFERENCES jina_tabulka (prim_klic)
Máme 2 tabulky: výrobky a výrobci. Každý výrobek vyrobil nějaký výrobce. Výrobce má více výrobků, výrobek má jednoho výrobce. Odpovídající relace je uvedena v návrhu tabulek v nastavení cizího klíče.
CREATE TABLE vyrobci ( id_vyrobce int primary key not null, nazev_vyrobce varchar (20) not null unique, sidlo varchar(30) default 'Havířov'); CREATE TABLE vyrobek ( id_v int auto_increment primary key not null, nazev varchar(15), cena int default 0, vyrobil int, FOREIGN KEY(vyrobil) REFERENCES vyrobci (id_vyrobce) );