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

MySQLのchar(1)型カラムにNULLを挿入する方法をわかりやすく解説

MySQLのchar(1)型カラムにNULLを挿入するには

MySQLでは、char(1)型のカラムにNULLを挿入したい場合、そのカラムを「NULL許容」として定義しておくことが重要です。カラム定義にNULLを明示的に指定しておけば、INSERT文を使ってNULLをそのまま格納できます。

また、sql_modeを「STRICT_TRANS_TABLES」に設定しておくと、無効な値を挿入しようとした際にエラーが発生し、データの整合性が厳密に保たれます。デフォルト設定によっては、不正な値が警告とともに自動調整されてしまうこともあるため、意図しないデータの登録を防ぎたい場合には厳密モードの活用がおすすめです。

ステップ1:テーブルを作成する

まず、char(1)型のGenderカラムをNULL許容として定義したテーブルを作成します。

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name varchar(50),
    Gender char(1) NULL
);
Query OK, 0 rows affected (0.99 sec)

ステップ2:sql_modeを設定してデータを挿入する

続いて、sql_modeを設定した上で、INSERTコマンドでレコードを挿入します。Genderカラムには、NULLと通常の値「M」の両方を試してみましょう。

mysql> set sql_mode = 'STRICT_TRANS_TABLES';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> insert into DemoTable(Name,Gender) select 'Chris',NULL;
Query OK, 1 row affected (0.21 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> insert into DemoTable(Name,Gender) select 'David',NULL;
Query OK, 1 row affected (0.16 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> insert into DemoTable(Name,Gender) select 'Mike','M';
Query OK, 1 row affected (0.16 sec)
Records: 1 Duplicates: 0 Warnings: 0

ステップ3:挿入結果を確認する

SELECT文ですべてのレコードを表示して確認します。

mysql> select *from DemoTable;

実行結果は以下の通りです。

+----+-------+--------+
| Id | Name  | Gender |
+----+-------+--------+
|  1 | Chris | NULL   |
|  2 | David | NULL   |
|  3 | Mike  | M      |
+----+-------+--------+
3 rows in set (0.00 sec)

まとめ

char(1)型カラムにNULLを挿入するポイントは、カラム定義の段階でNULLを許可しておくことです。実行結果を見ると、「Chris」と「David」のレコードにはNULLが正しく格納され、「Mike」には通常の値「M」が登録されていることが確認できます。NOT NULL制約が付いていない限り、NULLは問題なく挿入可能なので、性別のように未登録・不明の状態を表現したいデータにはNULL許容カラムを活用しましょう。

  1. Javaを使ってDATE型の値をMySQLカラムに挿入する方法【PreparedStatement活用】

    はじめに JavaからMySQLのDATE型カラムに日付データを挿入したい場合、PreparedStatementを使用するのが最も安全で推奨される方法です。SQLインジェクション対策にもなり、日付型の変換もスムーズに行えます。 本記事では、Javaプログラムから現在の日付をMySQLテーブルに挿入する手順を、サンプルコード付きでわかりやすく解説します。 1. サンプルテーブルの作成 まず、DATE型のカラム「ArrivalDate」を含むテーブルを作成します。以下はMySQLでの作成例です。 mysql> create table DemoTable( PassengerId

  2. JavaでMySQLデータベースにNULL値を挿入する方法

    JavaからデータベースにNULL値を挿入したいケースはよくあります。その場合、PreparedStatementのsetNull()メソッドを使用します。基本的な構文は以下の通りです。ps.setNull(インデックス番号, Types.NULL);この記事では、実際にサンプルを通してNULL値の挿入手順を解説します。1. テーブルの作成まず、MySQLでテスト用のテーブルを作成します。mysql> create table DemoTable1893 ( FirstName varchar(20) ); Query OK, 0 rows affected (0