MySQLでテーブル作成時に列へDEFAULT値(デフォルト値)を設定する方法
MySQLでテーブル作成時に列へDEFAULT値を設定する方法
MySQLでテーブルを作成する際に、列へデフォルト値を設定するにはDEFAULTキーワードを使用します。まず、実際にテーブルを作成する例を見てみましょう。以下のように、CREATE TABLE文の実行時にDEFAULTを指定しています。
mysql> create table DemoTable803 ( UserId int DEFAULT 101, UserName varchar(100) DEFAULT 'Chris' ); Query OK, 0 rows affected (1.18 sec)
この例では、UserId列に「101」、UserName列に「'Chris'」というデフォルト値がそれぞれ設定されています。
INSERT文でレコードを挿入してデフォルト値を確認する
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。値を指定しなかった列には、自動的にデフォルト値が設定されます。
mysql> insert into DemoTable803 values(102,'Chris');
Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable803(UserName) values('Mike');
Query OK, 1 row affected (0.48 sec)
mysql> insert into DemoTable803(UserId) values(103);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable803 values();
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable803 values(110,'Robert');
Query OK, 1 row affected (0.33 sec)SELECT文ですべてのレコードを表示する
SELECT文を使って、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable803;
実行結果は以下のとおりです。
+--------+----------+ | UserId | UserName | +--------+----------+ | 102 | Chris | | 101 | Mike | | 103 | Chris | | 101 | Chris | | 110 | Robert | +--------+----------+ 5 rows in set (0.00 sec)
結果を見ると、INSERT文で値を指定しなかった列には、あらかじめ設定しておいたデフォルト値(UserIdは「101」、UserNameは「'Chris'」)が自動的に適用されていることがわかります。
default()関数で設定済みのデフォルト値を表示する
列に設定されているデフォルト値そのものを確認したい場合は、以下のようにdefault()関数を使用します。
mysql> select default(UserId),default(UserName) from DemoTable803 limit 1;
実行結果は以下のとおりです。
+-----------------+-------------------+ | default(UserId) | default(UserName) | +-----------------+-------------------+ | 101 | Chris | +-----------------+-------------------+ 1 row in set (0.00 sec)
まとめ
CREATE TABLE文でDEFAULTキーワードを指定しておけば、INSERT時に値が省略された列へ自動的にデフォルト値が適用されます。また、default(列名)関数を使えば、各列に設定されているデフォルト値を簡単に確認できます。初期値を持たせたい列がある場合に、ぜひ活用してみてください。
-
MySQLで列にENUM型を設定する方法
```html MySQLでは、テーブルを作成する際に、あらかじめ決められた文字列のリストから値を選ばせたい列に対してENUM型を設定できます。ENUMは、指定した候補値以外のデータが登録されるのを防ぎたい場合に便利なデータ型です。ここでは、実際にテーブルを作成しながら基本的な使い方を見ていきましょう。ENUM型を含むテーブルを作成するまず、学生の点数と合否ステータスを管理するテーブルを作成します。「StudentStatus」列には「First」「Second」「Fail」の3つの値のみを許可するENUM型を設定しています。mysql> create table DemoTable20
-
MySQLでテーブルを作成し、現在の日付をデフォルト値として設定する方法
MySQLでは、テーブル作成時にDEFAULT制約を追加することで、カラムにデフォルト値を設定できます。日付型のカラムに対して現在の日付(CURRENT_DATE)をデフォルト値として指定すれば、レコード挿入時に明示的に値を渡さなくても自動的に当日の日付が登録されます。基本構文テーブルを作成し、DEFAULT制約を使ってデフォルト値を設定する際の基本的な構文は以下の通りです。CREATE TABLE yourTableName ( yourColumnName1 dataType not null , yourColumnName2 dataType default anyValue, . .