SQL pravila (engl. SQL rules) se koriste da se postave neka pravila koja će da važe za podatke u tabeli.

Ograničenja (engl. Constraints) se koriste da bi se ograničilo to kakvi podaci se smeštaju u tabele. Ako postoji problem, pa neko pokuša da unese podatke koji se ne slažu sa ograničenjima, akcija se neće izvršiti !

Ograničenja mogu da se postave za svaku od kolona pojediniačno, ali i za celu tabelu,

U prethodnim lekcijama su navedena ograničenja (link gore), a ovde su primeri svakih od ograničenja koje radimo, sa mogućnošću vežbanja kod kuće:

  • NOT NULL ograničenje : Ako drugačije nije navedeno, u kolonu se može upisati NULL vrednost (čitaj: može da ostane prazno - da se ne upiše ništa). Ako se prilikom kreiranja kolone u tabeli navede NOT NULL, tada se mora uneti vrednost - ne može da se ne upiše ništa.
    • Pogledajte primer  u kojem se moraju unositi ime i prezime:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255) NOT NULL,   godine int );

  • UNIQUE ograničenje: traži se da su sve vrednosti u koloni jedinstvene. Kao na primer, svaka osoba ima jedinstven JMBG.

    • Pogledajte primer  u kojem mora da je ID jedinstven:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255),   godine int,   CONSTRAINT UC_osobe UNIQUE (ID) );

  • DEFAULT ograničenje: postavlja se default vrednost koja će biti upisana ako korisnik ne navede taj deo prilikom unosa podataka.  

    • Pogledajte primer  u kojem, ako se ne unese grad, default će biti Kula:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255),   godine int,   grad varchar(255) DEFAULT 'Kula' );

  • PRIMARNI KLJUČ (PRIMARY KEY) ograničenje: - jedinstveno identifikuje svaki red u tabeli. Primarni ključ kora da sadrža jedinstvene (UNIQUE) vrednosti, i ne može da sadrži NULL. U tabeli može da postoji samo jedan primarni ključ ! Taj primarni kljul može da se sastoji samo od jedne kolone, ali može da se sastoji i od više kolona zajedno, i tada govorimo o kompozitnom ključu. (radili ste to prethodne školske godine).

    • Pogledajte primer  u kojem je primarni ključ ID:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255),   godine int,   grad varchar(255),    CONSTRAINT PK_osobe PRIMARY KEY (ID) );

i drugi način (
koji podržava većina sistema za upravljanje bazama podataka, ali NE SVI):

CREATE TABLE osobe
(
ID int PRIMARY KEY,
prezime varchar(255) NOT NULL,
ime varchar(255),
godine int,
grad varchar(255)
);

  • SPOLJAŠNJI KLJUČ (FOREIGN KEY) ograničenje: ključ koji povezuje dve tabele. Spoljašnji ključ je polje (ili skup polja) u jednoj tabeli koji se odnose na primarni ključ u nekoj drugoj tabeli. Ovo je smišljeno da bi se sprečili unosi neispravnih podataka, koji bi možda mogli i da unište veze koje postoje između tabela.
  • CHECK - (Kod nas često prevođeno kao "kontrolno ograničenje"): koristi se da ograniči opseg vrednosti koji se može unetu u kolonu. Primer, ne možete uneti redni broj dana u sedmici izvan intervala od 1 do 7.
    • Pogledajte primer  u kojem se mogu uneti samo punoletne osobe iz Kule:
CREATE TABLE osobe
(
    ID int NOT NULL,    prezime varchar(255) NOT NULL,    ime varchar(255),   godine int,   grad varchar(255),    CONSTRAINT CHK_osobe CHECK (godine>=18 AND Grad='Kula') );



Poslednja izmena: четвртак, 11. мај 2023, 10:22