MySQLの制約(constraint)の使い方はどうですか?
MySQLの制約は、データベースのテーブルに定義された列にルールを適用し、挿入、更新、削除操作を制限するためのものです。これにより、データの完全性と整合性を確保することができます。
MySQLでは、制約を定義するために以下のキーワードを使用できます:
- プライマリーキーは、行ごとに一意に識別するために表に定義される主キー制約です。表には1つの主キー制約しか持つことができず、主キーの値はNULLにすることはできません。
CREATE TABLE table_name (
column1 datatype PRIMARY KEY,
column2 datatype,
...
);
- 外部キーは、テーブル間の関係を構築するために、テーブルに外部キー制約を定義するものです。外部キーの値は、参照されるテーブルの主キー値である必要があります。NULLである場合もあります。参照されるテーブルは存在している必要があります。
CREATE TABLE table_name1 (
column1 datatype PRIMARY KEY,
column2 datatype,
...
FOREIGN KEY (column2) REFERENCES table_name2(column1)
);
- UNIQUE: 列に対する一意制約を定義し、列内の値が重複しないようにするために使用します。
CREATE TABLE table_name (
column1 datatype UNIQUE,
column2 datatype,
...
);
- NULLでない:列にNULL制約を定義し、列の値がNULLでないことを確認するために使用されます。
CREATE TABLE table_name (
column1 datatype NOT NULL,
column2 datatype,
...
);
- CHECK:列に対するチェック制約を定義し、列の値が特定の条件を満たさなければならないよう制限します。
CREATE TABLE table_name (
column1 datatype CHECK (condition),
column2 datatype,
...
);
- デフォルト:新しい行が挿入される際に、列の値が提供されていない場合にデフォルト値を使用するように、デフォルト制約を列に定義します。
CREATE TABLE table_name (
column1 datatype DEFAULT default_value,
column2 datatype,
...
);
テーブルを作成する際に制約を定義できるほか、既存のテーブルにALTER TABLE文を使用して制約を追加、変更、削除することもできます。