Conforme documentado em Valores padrão de tipo de dados:
Se a coluna pode receberNULLcomo um valor, a coluna é definida com umDEFAULT NULLexplícito cláusula.
(Acho que eles queriam dizer implícito , não explícito ).
Além disso, conforme documentado em
CREATE TABLE Sintaxe:
Se nemNULLnemNOT NULLfor especificado, a coluna será tratada como seNULLhavia sido especificado.
Portanto, no MySQL, as seguintes definições de coluna são todas idênticas:
columnname type
columnname type NULL
columnname type DEFAULT NULL
columnname type NULL DEFAULT NULL
A escolha de qual usar é um equilíbrio entre ser explícito e ser conciso. Dependendo das circunstâncias, eu poderia usar qualquer um dos itens acima.