Ograniczenia UNIQUE i NOT NULL w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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 KEY nie 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.