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

MySQLのDEFAULT制約とは?テーブル作成時に列へ適用する方法をわかりやすく解説

DEFAULT制約(デフォルト制約)は、MySQLのテーブルにおける特定の列にデフォルト値を設定するために使用されます。この制約が適用された列に対してINSERT文で値が指定されなかった場合、自動的に設定されたデフォルト値が格納される仕組みです。

DEFAULT制約の基本構文

DEFAULT default_value

ここで「default_value」には、対象の列に設定したいデフォルト値を指定します。

テーブル作成時にDEFAULT制約を適用する例

以下のクエリでは、「workers」という名前のテーブルを作成し、id列にデフォルト値として1000を設定しています。

mysql> Create table workers(Name Varchar(25), Id INT NOT NULL DEFAULT 1000);
Query OK, 0 rows affected (0.47 sec)

mysql> Insert into workers(Name, Id) values('Ram', 101);
Query OK, 1 row affected (0.04 sec)

mysql> Insert into workers(Name) values('Mohan');
Query OK, 1 row affected (0.10 sec)

mysql> Select * from Workers;

+-------+------+
| Name  | Id   |
+-------+------+
| Ram   | 101  |
| Mohan | 1000 |
+-------+------+

2 rows in set (0.00 sec)

実行結果のポイント

上記の結果セットを見ると、2件目のINSERT文ではid列に値を指定していませんが、デフォルト値である1000が自動的に保存されていることが確認できます。一方、明示的に101を指定した1件目のデータは、そのまま指定した値で登録されています。

DEFAULT制約を使うメリット

  • 入力漏れがあっても一貫性のあるデータを保持できる
  • アプリケーション側のコードを簡潔にできる
  • NOT NULL制約と組み合わせることで、NULL値の発生を防げる

既存のテーブルに後から追加する場合

すでに作成済みのテーブルにDEFAULT制約を追加したい場合は、ALTER TABLE文を使用します。

ALTER TABLE workers ALTER COLUMN Id SET DEFAULT 2000;

このように、DEFAULT制約を活用することで、データの整合性を保ちながら効率的なテーブル設計を行うことができます。

  1. MySQLでテーブルを作成するときに波括弧{}は使える?正しい構文を解説

    結論:波括弧 {} は使用できませんいいえ、MySQLでテーブルを作成する際に波括弧 {} を使用することはできません。テーブルの列定義は、必ず丸括弧 ( ) で囲む必要があります。誤って {} を使うと構文エラーが発生するため、注意しましょう。テーブル作成の基本的な構文は以下の通りです。CREATE TABLE IF NOT EXISTS yourTableName ( yourColumnName1 dataType1, . . . N );実際にテーブルを作成してみようそれでは、丸括弧を使って実際にテーブルを作成してみましょう。ここでは、顧客情報を

  2. MySQLで予約語「Key」をカラム名として使用する方法【バッククォートの使い方】

    MySQLでは「Key」は予約語(予約済みキーワード)として登録されているため、そのままカラム名として使用するとエラーが発生します。そこで活躍するのがバッククォート(`)です。カラム名の前後をバッククォートで囲むことで、予約語でも安全に使用できるようになります。本記事では、実際にカラム名「key」を持つテーブルを作成する例を通じて、具体的な手順をわかりやすく解説します。1. テーブルを作成するまず、バッククォートで囲んだ「Key」というカラムを持つテーブルを作成しましょう。mysql> create table DemoTable ( `Key` int ); Query OK,