Atrybut NOT NULL kolumny jest konieczny w przypadku:
Źle. Większość pól może dopuszczać wartość NULL - to nie jest wymóg dla wszystkich.
Źle. Pola numeryczne także mogą przyjmować wartość NULL.
Dobrze. Klucz podstawowy nie może być pusty, więc jego kolumny muszą mieć NOT NULL.
Źle. DEFAULT ustala wartość domyślną, ale nie wymaga, by pole było NOT NULL.
Klucz podstawowy (primary key) jednoznacznie identyfikuje każdy wiersz, dlatego nie może być pusty - stąd jego kolumny muszą mieć atrybut
NOT NULL (w wielu systemach jest on dla klucza wymuszany automatycznie). Inne kolumny mogą dopuszczać brak wartości (NULL), zależnie od projektu. Dlatego NOT NULL jest konieczny w przypadku klucza podstawowego.Pozostałe sytuacje nie wymagają
NOT NULL. Atrybut DEFAULT jedynie ustawia wartość domyślną wstawianą, gdy nie podano innej - pole może nadal dopuszczać NULL. Nie jest też prawdą, że wszystkie pola tabeli muszą być NOT NULL: projektant często celowo pozwala na brak wartości (np. opcjonalny adres). Tak samo pola liczbowe mogą przyjmować NULL. Pustej wartości nie może mieć tylko klucz podstawowy, dlatego to dla niego NOT NULL jest konieczny.