MySQLの制約(constraint)の使い方はどうですか?

MySQLの制約は、データベースのテーブルに定義された列にルールを適用し、挿入、更新、削除操作を制限するためのものです。これにより、データの完全性と整合性を確保することができます。

MySQLでは、制約を定義するために以下のキーワードを使用できます:

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

テーブルを作成する際に制約を定義できるほか、既存のテーブルにALTER TABLE文を使用して制約を追加、変更、削除することもできます。

bannerAds