Ograniczenie 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, 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.