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);
Podmínka CHECK
Omezí sloupec pro určitou množinu hodnot
Příklad: cena výrobků musí být >0
prodejna=> CREATE TABLE vyrobek ( id_v serial , nazev varchar(15),vyrobeno date default now(),cena int check(cena>0));
Příklad: počet kusů musí být >0 a zároveň <100
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)
Podmínka 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));
Podmínka 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 vzrobek bude id_v
prodejna=> CREATE TABLE vyrobek ( id_v serial primary key, nazev varchar(15),vyrobeno date default now(),cena int check(cena>0));
REFERENCES (cizí klíč)
Sloupcové omezení, které říká, že hodnoty ve sloupci budou primárními klíči z jiné tabulky. Za klíčovým slovem REFERENCES následuje název tabulky, do které se budeme odkazovat (např. do odberatele) a v závorce za názvem tabulky bude název sloupce s primárními klíči této tabulky:
REFERENCES odberatele (prim_klic) prodejna=> CREATE TABLE vyrobek ( id_v serial primary key, nazev varchar(15),vyrobeno date default now(),cena int check(cena>0)); prodejna=> CREATE TABLE odberatele (id_odberatele serial primary key, jmeno varchar (20), prijmeni varchar (20),sidlo varchar(30), co int references vyrobek(id_v));