As documented under Data Type Default Values:
If the column can take
NULL
as a value, the column is defined with an explicitDEFAULT NULL
clause.
(I think they meant implicit, not explicit).
Moreover, as documented under CREATE TABLE
Syntax:
If neither
NULL
norNOT NULL
is specified, the column is treated as thoughNULL
had been specified.
Therefore, in MySQL the following column definitions are all identical:
columnname type
columnname type NULL
columnname type DEFAULT NULL
columnname type NULL DEFAULT NULL
The choice of which to use is a balance between being explicit, and being concise. Depending on the circumstances, I might use any of the above.