最終的にやりたいこと
NULLを除いて、「デフォルト値なし」のカラムのみ抽出したい


Q1.phpMyAdminで「デフォルト値なし」と表示されるカラムがあるのですが、どういう意味ですか? 「デフォルト値なし」が内部的にどう処理されているかを知りたいです。

下記コマンド実行したら、「NOT NULLで デフォルト値なし」のカラムは「Default NULL」と表示されました。

show columns from テーブル名;

Default フィールドは、このカラムに割り当てられているデフォルト値を示します。このカラムの明示的なデフォルト値が NULL
である場合や、カラム定義に DEFAULT 句が含まれていない場合、これは NULL です。

SHOW COLUMNS 構文

「カラム定義に DEFAULT 句が含まれていない場合、これは NULL です」の意味は、下記何れですか?

  • デフォルト値なしとNULLの意味は同じ
  • デフォルト値なしとNULLの意味は異なるが、SHOW COLUMNS 実行結果としては同じ

Q2.カラムに対して「NOT NULLで デフォルト値ありなし」と「NOT NULL制約を設定しているかどうか」の情報はどこにありますか?
INFORMATION_SCHEMA.COLUMNSにあるのかと思い下記SQLを試してみましたが、よくわかりませんでした

select * from `INFORMATION_SCHEMA`.`COLUMNS` where `TABLE_SCHEMA`='テーブル名'