MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでカラムのデフォルト値をNULLに設定する方法

MySQLでは、DEFAULT NULLを指定することで、カラムのデフォルト値をNULLに設定できます。本記事では、実際にテーブルを作成し、デフォルト値NULLがどのように機能するかを具体的な例とともに解説します。

デフォルト値がNULLのテーブルを作成する

まず、DEFAULT NULLを指定したテーブルを作成します。

mysql> create table DemoTable1440
    -> (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(20) DEFAULT NULL,
    -> StudentAge int DEFAULT NULL
    -> );
Query OK, 0 rows affected (0.55 sec)

この例では、StudentNameカラムとStudentAgeカラムに対してDEFAULT NULLを設定しています。これにより、INSERT時に値が指定されなかった場合、自動的にNULLが挿入されます。

レコードを挿入して動作を確認する

次に、INSERTコマンドを使っていくつかのレコードを挿入します。値が省略されたカラムには、デフォルト値であるNULLが挿入されます。

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)

上記のINSERT文では、以下の4パターンを挿入しています。

  • 両方のカラムに値を指定した場合
  • どちらのカラムも指定しなかった場合
  • StudentNameのみ指定した場合
  • StudentAgeのみ指定した場合

SELECT文で結果を確認する

SELECT文を使って、テーブル内のすべてのレコードを表示します。

mysql> select * from DemoTable1440;

実行すると、次のような出力が得られます。

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)

結果の解説

出力結果から、以下のことが確認できます。

  • 1行目:両方の値を指定したため、NULLは挿入されていません。
  • 2行目:どちらの値も指定しなかったため、StudentNameとStudentAgeの両方にNULLが挿入されています。
  • 3行目:StudentNameのみ指定したため、指定しなかったStudentAgeにNULLが挿入されています。
  • 4行目:StudentAgeのみ指定したため、指定しなかったStudentNameにNULLが挿入されています。

このように、カラム定義時にDEFAULT NULLを指定しておけば、INSERT時に値が省略されたカラムには自動的にNULLが設定されます。NULLを許容するカラムで明示的にデフォルト値を定義しない場合でも、MySQLの暗黙的なデフォルトとしてNULLが適用されますが、可読性と意図の明確化のためにDEFAULT NULLを明示的に記述することが推奨されます。


  1. MySQLでNOT NULLの値に対して1を設定する方法(IF関数とIS NOT NULLの使い方)

    MySQLでNOT NULLの値に1を設定するにはMySQLでは、IS NOT NULL演算子とIF()関数を組み合わせることで、値がNULLでない場合に「1」、NULLの場合に「0」を返すことができます。データの存在チェックやフラグ管理など、さまざまな場面で活用できる便利なテクニックです。基本構文NOT NULLかどうかを判定して1を設定する基本構文は以下のとおりです。select if( is not NULL,1,0) as anyAliasName;実際に動作するクエリを見てみましょう。mysql> select if( is not NULL,1,0);このクエリを実行すると、

  2. MySQLでJSON型カラムにデフォルト値を設定する方法

    MySQLでは、JSON型のカラムにもデフォルト値を設定できます。その場合は、DEFAULT制約を使用します。基本的な構文は以下の通りです。ALTER TABLE テーブル名 MODIFY COLUMN カラム名 JSON NOT NULL DEFAULT ( JSON_OBJECT() );サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。ここでは demo24 というテーブルを作成します。mysql> create table demo24 -> ( -> employee_information text -> ) ->; Query OK,