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

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を設定しておくと、レコード作成日を自動記録できるため便利です。

  1. 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

  2. MySQL Workbenchで新しいデータベースを作成する方法

    MySQL Workbenchを使って新しいデータベースを作成するには、まずMySQL Workbenchを起動する必要があります。以下は起動画面のスクリーンショットです。MySQLへの接続を確認する次に、MySQLとの接続をテストしてみましょう。以下の手順に従ってください。Database -> Connect to Database(Ctrl + U)すると、「Connect to Database(データベースに接続)」ダイアログボックスが表示されます。続行するにはパスワードを入力してください。その後、OKボタンを2回押すと接続が確立されます。データベースの作成手順接続が完了したら