Której klauzuli należy użyć w poleceniu CREATE TABLE, aby pole nie mogło pozostać puste?
Źle.
NULL wręcz POZWALA na brak wartości.Dobrze.
NOT NULL wymusza, by pole zawsze miało wartość.Źle.
DEFAULT ustala wartość domyślną, lecz nadal dopuszcza NULL.Źle.
CHECK nakłada warunek na wartość, ale sam nie zakazuje pustości.Klauzula
NOT NULL w definicji kolumny wymusza, że pole musi mieć wartość - baza odrzuci próbę wstawienia wiersza bez niej. Stosuje się ją do danych obowiązkowych, np. nazwisko VARCHAR(50) NOT NULL, a także automatycznie dla kolumn klucza głównego. Często łączy się ją z DEFAULT, by przy braku wartości wstawić ustaloną domyślną. Dlatego aby pole nie mogło być puste, używa się NOT NULL.Pozostałe klauzule nie wymuszają niepustości.
NULL działa odwrotnie - jawnie zezwala, by pole pozostawało bez wartości. CHECK nakłada warunek na zawartość kolumny (np. cena > 0), ale samo w sobie nie zabrania wartości pustej. DEFAULT ustala wartość wstawianą, gdy nie podano innej, jednak nadal dopuszcza zapis NULL, jeśli ktoś go celowo wpisze. Zakaz pustego pola wprowadza NOT NULL, dlatego ta odpowiedź jest poprawna.