SQL CONSTRAINTS (ograniczenia)
DEFINICJA
CONSTRAINTS (ograniczenia) to reguły które określają jakie dane mogą się znajdować w tabelach (kolumnach). Część z tych zasad "pilnuje" aby dane wprowadzane do naszej bazy danych były logicznie spójne a część "pilnuje" także żeby działania wykonywane na danych odbywały się zgodnie z tymi zasadami. Z reguły nadajemy je, podczas deklaracji struktury tabel, ale są też sposoby na ich dodanie do już istniejącej struktury (tabeli). Jest kilka takich reguł które krótko opiszę poniżej.
Ogólna składnia CONSTRAINTS
CREATE TABLE nazwa_tabeli
(
…
nazwa_kolumny typ_danych(rozmiar) nazwa_ograniczenia
…
)
NOT NULL
Wykorzystując tą zasadę określamy, że dana kolumna nie może przechowywać wartości NULL.
Przykład zastosowania NOT NULL
CREATE TABLE Pracownicy
(
ID_pracownik int NOT NULL
,Imie varchar(20)
,Nazwisko varchar(50)
…
)
UNIQUE
Zasada która "mówi", że kolumna musi przechowywać wartości unikalne. Kolumna z zasadą UNIQUE może przechowywać wartość NULL.
Przykład zastosowania UNIQUE
CREATE TABLE Pracownicy
(
ID_pracownik int UNIQUE
,Imie varchar(20)
,Nazwisko varchar(50)
…
)
PRIMARY KEY (klucz główny)
To zasada która "mówi", że kolumna musi zawierać unikalne wartości które w jednoznaczny sposób identyfikują każdy rekord. W kolumnie tej nie możemy przechowywać wartości NULL. Z powyższego opisu można jasno wywnioskować, że PRIMARY KEY to takie połączenie NOT NULL i UNIQUE. Więcej na temat PRIMARY KEY przeczytasz tutaj.
FOREIGN KEY (klucz obcy)
To definiowanie relacji między tabelami (określenie zasad spójności danych w tabelach). Wartości przechowywane w kolumnie która jest zdefinowana jako klucz obcy w pierwszej tabeli zawsze będą miały swój odpowiednik w kolumnie która jest zdefiniowana jako klucz główny w drugiej tabeli. Więcej na temat kluczy obcych przeczytasz tutaj.
CHECK
Ta zasada "zba" o to, żeby w danej kolumnie znajdowały się wartości które spełniają określony przez nas warunek. Inaczej mówiąc warunek ten musi być prawdziwy dla wszystkich rekordów w danej tabeli.
DEFAULT
Zasada DEFAULT określa wartość domyślną dla danej kolumny.