Czym są ograniczenia UNIQUE i NOT NULL?
W SQL ograniczenia integralności pilnują poprawności danych w tabeli. Dwa bardzo ważne ograniczenia to:
- NOT NULL – kolumna musi mieć wartość, nie może być pusta (
NULL) - UNIQUE – każda wartość w kolumnie musi być niepowtarzalna
W pytaniach egzaminacyjnych często pojawiają się razem z kluczem głównym. Klucz PRIMARY KEY w praktyce oznacza właśnie, że identyfikator rekordu jest:
- unikalny
- niepusty
Dlatego odpowiedź mówiąca o PRIMARY KEY z cechami NOT NULL i UNIQUE jest poprawna.
NOT NULL
Ograniczenie NOT NULL stosuje się wtedy, gdy dana informacja jest obowiązkowa.
Przykład:
imie VARCHAR(50) NOT NULL
Oznacza to, że nie można dodać rekordu bez wartości w kolumnie imie.
UNIQUE
Ograniczenie UNIQUE wymusza brak duplikatów.
Przykład:
email VARCHAR(100) UNIQUE
Dzięki temu dwa konta nie mogą mieć tego samego adresu e-mail.
Przykład w tabeli
CREATE TABLE uczniowie (
id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE,
imie VARCHAR(50) NOT NULL
);
W tej tabeli:
- id jednoznacznie identyfikuje rekord
- email nie może się powtarzać
- imie musi być podane
Najważniejsze na egzamin
- PRIMARY KEY identyfikuje każdy rekord w tabeli
- klucz główny nie może być NULL
- klucz główny musi być unikalny
FOREIGN KEYnie musi być unikalny, bo wiele rekordów może wskazywać ten sam rekord w innej tabeli
Wniosek
Jeśli pytanie dotyczy warunku poprawnego i konsekwentnego działania każdej tabeli, najważniejszy jest klucz główny, który ma cechy NOT NULL i UNIQUE.