Przejdź do głównej treści

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 w SQL, które oznacza, że dana kolumna nie może zawierać wartości pustej NULL. Nie sprawdza ono jednak, czy wartości się powtarzają.

Jeżeli kolumna ma ustawione NOT NULL, podczas dodawania rekordu trzeba podać dla niej wartość.

Przykład

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

W tym przykładzie kolumny imie i nazwisko muszą zostać uzupełnione. Nie można dodać klienta bez imienia lub nazwiska.

Czego NOT NULL nie robi?

NOT NULL nie blokuje duplikatów. Oznacza to, że wiele rekordów może mieć tę samą wartość, jeśli tylko nie jest ona pusta.

CREATE TABLE osoby (
    email VARCHAR(100) NOT NULL
);

W tej tabeli adres e-mail musi być podany, ale może się powtarzać, jeśli nie dodano ograniczenia UNIQUE.

NOT NULL razem z UNIQUE

Często oba ograniczenia stosuje się razem:

CREATE TABLE uzytkownicy (
    email VARCHAR(100) UNIQUE NOT NULL
);

Taki zapis oznacza, że email musi być podany i nie może się powtarzać.

Najważniejsze do egzaminu

NOT NULL odpowiada za obowiązkowe wypełnienie pola. Jeśli pytanie dotyczy braku powtarzających się wartości, właściwym ograniczeniem jest UNIQUE, a nie NOT NULL.