NOT NULL
「NOT NULL」を指定しない場合、デフォルトでそのカラムはNULL値を許容します。つまり、データを挿入するときにそのカラムの値を指定しなくても、NULL値が設定されます。
「NULL値を許容している場合」に「DEFAULT NULL」を明示的に指定しなくても、結果として同じ動作になります。つまり、デフォルトでNULL値が設定可能な状態となり、値を挿入しない場合そのカラムの値はNULLになります。
CREATE TABLE example_table1 ( column1 INT -- デフォルトでNULLが許容される );
CREATE TABLE example_table2 ( column1 INT DEFAULT NULL -- 明示的にNULLをデフォルト値として指定 );
この2つは動作に違いはなく、どちらの定義でもcolumn1に値を挿入しない場合はNULLが自動的に設定されます。ただし、「DEFAULT NULL」を明示することには利点があります。
例えば:
テーブルの定義をより読みやすくする(意図が明確になる)
他の開発者への理解を助ける