Zgodnie z dokumentacją w części Domyślne wartości typu danych:
Jeśli kolumna może przyjąć NULL jako wartość kolumna jest zdefiniowana z wyraźnym DEFAULT NULL klauzula.
(Myślę, że mieli na myśli niejawne , a nie wyraźne ).
Ponadto, jak udokumentowano w CREATE TABLE Składnia:
Jeśli żaden NULL ani NOT NULL jest określony, kolumna jest traktowana tak, jakby NULL został określony.
Dlatego w MySQL następujące definicje kolumn są identyczne:
columnname type
columnname type NULL
columnname type DEFAULT NULL
columnname type NULL DEFAULT NULL
Wybór, którego użyć, jest równowagą między byciem wyraźnym a zwięzłym. W zależności od okoliczności mogę użyć dowolnego z powyższych.