Kako primeniti ograničenja prilikom kreiranja tabele
Uslovi za završetak
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 sa ograničenjima ove vrste na: https://www.w3schools.com/sql/sql_notnull.asp i sami provežbajte na "Try it Yourself".
- 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 sa ograničenjima ove vrste na: https://www.w3schools.com/sql/sql_unique.asp i sami provežbajte na "Try it Yourself".
- 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 sa ograničenjima ove vrste na: https://www.w3schools.com/sql/sql_default.asp i sami provežbajte na "Try it Yourself".
- 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 sa ograničenjima ove vrste na: https://www.w3schools.com/sql/sql_primarykey.asp i sami provežbajte na "Try it Yourself".
- 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.
- Pogledajte primer sa ograničenjima ove vrste na: https://www.w3schools.com/sql/sql_foreignkey.asp i, ako želite, možete da sami provežbate na "Try it Yourself".
- 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