Co to jest NOT NULL w SQL?
NOT NULL to ograniczenie, które oznacza, że dana kolumna musi zawierać wartość. Nie można wstawić do niej NULL, czyli braku danych.
To bardzo ważne przy projektowaniu tabel, zwłaszcza dla pól identyfikujących rekordy. Jeśli kolumna ma służyć do jednoznacznego rozpoznawania wiersza, nie może być pusta.
Dlaczego NOT NULL jest ważne?
Bez NOT NULL baza mogłaby dopuścić rekordy bez wymaganej wartości, co prowadzi do:
- niejednoznaczności danych,
- problemów z wyszukiwaniem i łączeniem tabel,
- osłabienia integralności bazy danych.
W pytaniach egzaminacyjnych NOT NULL często pojawia się razem z:
- PRIMARY KEY,
- UNIQUE,
- FOREIGN KEY.
Przykład użycia
CREATE TABLE Produkty (
id INT NOT NULL,
nazwa VARCHAR(100) NOT NULL,
cena DECIMAL(10,2)
);
Tutaj:
- id musi mieć wartość,
- nazwa też musi być podana,
- cena może być pusta, jeśli nie dodano NOT NULL.
NOT NULL a PRIMARY KEY
Klucz główny (PRIMARY KEY) z definicji:
- nie może być pusty,
- musi być unikalny.
Dlatego w praktyce PRIMARY KEY oznacza jednocześnie cechy:
- NOT NULL,
- UNIQUE.
Przykład:
CREATE TABLE Klienci (
id INT PRIMARY KEY,
imie VARCHAR(50)
);
Kolumna id nie przyjmie wartości NULL, nawet jeśli nie zapisano tego osobno.
Najważniejsze na egzamin
Jeżeli pytanie dotyczy warunku poprawnego i konsekwentnego działania tabeli, kluczowe jest to, że każda tabela powinna mieć klucz główny. Taki klucz musi jednoznacznie wskazywać rekord, więc nie może być pusty. Właśnie dlatego NOT NULL jest jedną z podstawowych cech klucza głównego.