In many flavors of SQL, there are three ways you can implicitly set a column to NULL on every row insertion. These are:
columnname type NULL
columnname type
As documented under Data Type Default Values:
If the column can take
NULLas a value, the column is defined with an explicitDEFAULT NULLclause.
(I think they meant implicit, not explicit).
Moreover, as documented under CREATE TABLE Syntax:
If neither
NULLnorNOT NULLis specified, the column is treated as thoughNULLhad 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.