Którego atrybutu użyć, aby kolumna nie przyjmowała wartości PUSTEJ?
Źle.
NULL przeciwnie - ZEZWALA na pustą wartość.Dobrze.
NOT NULL wymusza podanie wartości.Źle.
UNIQUE wymusza unikalność, nie zakaz pustych.Źle.
DEFAULT ustawia wartość domyślną.Atrybut
NOT NULL w definicji kolumny wymusza, by KAŻDY wiersz miał w niej wartość - próba wstawienia rekordu bez tego pola skończy się błędem. Stosuje się go dla danych obowiązkowych, np. imie VARCHAR(50) NOT NULL, oraz zawsze dla klucza głównego (musi istnieć, by identyfikować rekord). Zapamiętaj: NOT NULL = „to pole nie może być puste”.Pozostałe atrybuty robią coś innego, a część wręcz odwrotnego.
NULL jawnie POZWALA na puste wartości - to przeciwieństwo wymagania. UNIQUE pilnuje, by wartości się nie powtarzały, ale dopuszcza pustkę. DEFAULT podstawia wartość domyślną, gdy żadnej nie podano, lecz nie zakazuje pustki. Zakaz pustej wartości daje wyłącznie NOT NULL.