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

MySQLで列のデフォルト値を設定する方法|DEFAULTキーワードの使い方を解説

MySQLで列のデフォルト値を設定する方法

MySQLで列にデフォルト値を設定するには、DEFAULTキーワードを使用します。デフォルト値を設定しておけば、INSERT時にその列の値が指定されなかった場合でも自動的に初期値が格納されるため、データの整合性を保ちやすくなります。

ここでは、実際にテーブルを作成し、ALTER TABLE文でデフォルト値を設定する手順をサンプルコード付きで解説します。

1. テーブルの作成

まず、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable758 (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(100)
);
Query OK, 0 rows affected (0.66 sec)

2. ALTER TABLE文でデフォルト値を設定する

次に、ALTER TABLE文で新しい列「Colors」を追加し、DEFAULTキーワードを使ってデフォルト値「YELLOW」を設定します。列の型にはENUM(列挙型)を使用しています。

mysql> alter table DemoTable758 add column Colors ENUM('RED','GREEN','BLUE','ORANGE','YELLOW') DEFAULT 'YELLOW';
Query OK, 0 rows affected (0.44 sec)
Records: 0 Duplicates: 0 Warnings: 0

3. テーブル構造の確認

DESCコマンドでテーブル構造を確認してみましょう。

mysql> desc DemoTable758;

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

+-----------+----------------------------------------------+------+-----+---------+----------------+
| Field     | Type                                         | Null | Key | Default | Extra          |
+-----------+----------------------------------------------+------+-----+---------+----------------+
| Id        | int(11)                                      | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(100)                                 | YES  |     | NULL    |                |
| Colors    | enum('RED','GREEN','BLUE','ORANGE','YELLOW') | YES  |     | YELLOW  |                |
+-----------+----------------------------------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

Colors列の「Default」欄に「YELLOW」が設定されていることが確認できます。

4. レコードの挿入とデフォルト値の動作確認

INSERTコマンドでレコードを挿入してみます。1件目の「John」ではColors列の値を指定していません。この場合、デフォルト値の「YELLOW」が自動的に格納されます。一方、2件目の「Carol」では明示的に「RED」を指定しているため、指定した値がそのまま登録されます。

mysql> insert into DemoTable758(FirstName) values('John');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable758(FirstName,Colors) values('Carol','RED');
Query OK, 1 row affected (0.17 sec)

5. 結果の確認

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

mysql> select *from DemoTable758;

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

+----+-----------+--------+
| Id | FirstName | Colors |
+----+-----------+--------+
|  1 | John      | YELLOW |
|  2 | Carol     | RED    |
+----+-----------+--------+
2 rows in set (0.00 sec)

JohnのレコードではColors列の値を指定していませんが、デフォルト値の「YELLOW」が自動的に設定されていることがわかります。

まとめ

  • 列のデフォルト値の設定にはDEFAULTキーワードを使用する
  • テーブル作成時(CREATE TABLE)でも、後から列を追加する際(ALTER TABLE)でも設定可能
  • INSERT時に値を省略すると、自動的にデフォルト値が格納される

デフォルト値を活用することで、値が未指定の列に一貫した初期値を適用でき、データ管理がより簡単になります。ENUM型だけでなく、INTやVARCHAR、DATE型などさまざまなデータ型に対して設定できるので、ぜひ活用してみてください。

  1. 【HTML入門】select要素のドロップダウンリストにデフォルト値(初期選択)を設定する方法

    HTMLでは、<select>要素を使うことで、フォーム内に簡単なドロップダウンリスト(セレクトボックス)を作成し、ユーザーに入力してもらうことができます。セレクトボックスは「プルダウンメニュー」とも呼ばれ、複数の選択肢を一覧形式で表示できる便利な部品です。さらに、このドロップダウンリストにはデフォルト値(初期状態で選択されている項目)を設定することも可能です。方法はとてもシンプルで、あらかじめ選択しておきたい項目の<option>タグに selected属性 を追加するだけです。selected属性の基本的な使い方以下のように、初期表示したい選択肢にselectedを

  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,