MySQLでDEFAULTキーワードを使ってデフォルト値を設定したテーブルを作成する方法
MySQLでは、テーブル作成時にカラムのデータ型の後にDEFAULTキーワードを指定することで、そのカラムにデフォルト値を設定できます。INSERT文で値が指定されなかった場合、自動的にこのデフォルト値が適用されます。
テーブルの作成例
それでは、実際にデフォルト値を持つテーブルを作成してみましょう。
mysql> create table demo33
-> (
-> id int not null auto_increment primary key,
-> name varchar(20) not null,
-> start_date date default(current_date),
-> end_date date default NULL,
-> category enum('Good','Medium','Low') default 'Low'
-> );
Query OK, 0 rows affected (2.32 sec)上記の例では、以下のようにデフォルト値が設定されています。
- start_date: 現在の日付(current_date)がデフォルト
- end_date: NULLがデフォルト
- category: 「Low」がデフォルト
レコードの挿入
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。ここでのポイントは、一部のカラムの値を省略しても、DEFAULT設定により自動的に値が入ることです。
mysql> insert into demo33(name) values('John');
Query OK, 1 row affected (0.15 sec)
mysql> insert into demo33(name,end_date,category) values('David','2020-12-21','Medium');
Query OK, 1 row affected (0.09 sec)
mysql> insert into demo33(name,start_date,category) values('David','2020-04-01','Good');
Query OK, 1 row affected (0.14 sec)
mysql> insert into demo33(name,start_date,end_date,category) values('David','2020-03-10','2020-08-22','Good');
Query OK, 1 row affected (0.17 sec)データの確認
SELECT文を使って、テーブル内のレコードを表示してみましょう。
mysql> select *from demo33;
実行すると、以下のような結果が出力されます。
+----+-------+------------+------------+----------+ | id | name | start_date | end_date | category | +----+-------+------------+------------+----------+ | 1 | John | 2020-10-28 | NULL | Low | | 2 | David | 2020-10-28 | 2020-12-21 | Medium | | 3 | David | 2020-04-01 | NULL | Good | | 4 | David | 2020-03-10 | 2020-08-22 | Good | +----+-------+------------+------------+----------+ 4 rows in set (0.00 sec)
結果のポイント
注目すべき点は、最初のレコード(John)です。name以外の値を指定しなかったにもかかわらず、start_dateには挿入時の日付「2020-10-28」が自動的に入り、categoryにはデフォルト値の「Low」が設定されています。また、2番目のレコード(David)でも、start_dateを省略したため現在の日付が自動的に登録されています。
このように、DEFAULTキーワードを活用することで、入力漏れによるNULLやエラーを防ぎ、データの一貫性を保つことができます。特に日付型のカラムにcurrent_dateを設定しておくと、レコード作成日を自動記録できるため便利です。
-
MySQLでデフォルト値として「false」を持つブール型(BOOLEAN)カラムを作成する方法
MySQLでデフォルト値falseのブール型カラムを作成する MySQLでは、「false」をデフォルト値とするブール型(BOOLEAN)カラムを作成したい場合、テーブル作成時に「DEFAULT」句を利用します。 ポイント:MySQLにおいてBOOLEAN型は内部的にTINYINT(1)として扱われ、0がfalse、1がtrueを表します。 1. テーブルの作成 以下のように、DEFAULT句で「false」を指定してテーブルを作成します。 mysql> create table TrueFalseTable -> ( -> Adult boolean def
-
MySQL Workbenchで新しいデータベースを作成する方法
MySQL Workbenchを使って新しいデータベースを作成するには、まずMySQL Workbenchを起動する必要があります。以下は起動画面のスクリーンショットです。MySQLへの接続を確認する次に、MySQLとの接続をテストしてみましょう。以下の手順に従ってください。Database -> Connect to Database(Ctrl + U)すると、「Connect to Database(データベースに接続)」ダイアログボックスが表示されます。続行するにはパスワードを入力してください。その後、OKボタンを2回押すと接続が確立されます。データベースの作成手順接続が完了したら