NOT NULL w SQL

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

Co to jest NOT NULL w SQL?

NOT NULL to ograniczenie kolumny w SQL, które wymusza podanie wartości w danym polu. Oznacza to, że kolumna nie może przyjąć wartości NULL, czyli braku wartości.

Najczęściej stosuje się je w instrukcji CREATE TABLE, gdy projektuje się strukturę tabeli i wiadomo, że dana informacja jest obowiązkowa, np. login użytkownika, nazwisko albo cena produktu.

Przykład użycia

CREATE TABLE uczniowie (
    id INT PRIMARY KEY,
    imie VARCHAR(50) NOT NULL,
    nazwisko VARCHAR(50) NOT NULL,
    email VARCHAR(100)
);

W tym przykładzie kolumny imie i nazwisko muszą mieć wartość. Kolumna email może pozostać pusta, ponieważ nie ma ograniczenia NOT NULL.

Co się stanie przy braku wartości?

Jeżeli użytkownik spróbuje dodać rekord bez wartości dla kolumny oznaczonej jako NOT NULL, baza danych zgłosi błąd.

INSERT INTO uczniowie (id, imie)
VALUES (1, 'Jan');

Jeżeli nazwisko ma NOT NULL, takie polecenie nie zostanie poprawnie wykonane.

NOT NULL a inne klauzule

  • NULL pozwala, aby pole nie miało wartości.
  • NOT NULL wymusza obecność wartości.
  • DEFAULT ustawia wartość domyślną, jeśli jej nie podano.
  • CHECK sprawdza warunek, np. czy liczba jest większa od zera.

Na egzaminie INF.03 poprawną odpowiedzią na pytanie o pole, które nie może pozostać puste, jest zawsze NOT NULL.