データベースのチェック制約の書き方はどうするのですか?

データベースでは、CHECK制約を使用して列の値を制限することができます。CHECK制約は条件を定義し、行を挿入または更新する際にその条件を満たす必要があります。

CHECK制約の構文は以下の通りです。

CREATE TABLE table_name (

column_name data_type CONSTRAINT constraint_name CHECK (condition)

);


table_nameはテーブル名、column_nameは列名、data_typeは列のデータ型、constraint_nameは制約の名前、conditionは制約を満たす条件です。

以下はいくつかの例です:

  1. 値は0以上でなければなりません。
CREATE TABLE employees (

id INT,

salary DECIMAL CONSTRAINT check_salary CHECK (salary > 0)

);


  1. 指定された範囲内であることを制約する。
CREATE TABLE students (

id INT,

age INT CONSTRAINT check_age CHECK (age >= 18 AND age <= 25)

);


  1. 値は、規定された正規表現に従う必要があります。
CREATE TABLE emails (

id INT,

email VARCHAR(255) CONSTRAINT check_email CHECK (email ~* &#x27;^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$&#x27;)

);


  1. 他の列との関係を満たすように、制約付き列の値を設定する必要があります。
CREATE TABLE orders (

id INT,

total_amount DECIMAL,

discount DECIMAL CONSTRAINT check_discount CHECK (discount >= 0 AND discount <= total_amount)

);


上記は一般的なCHECK制約の例です。具体的な要件に応じて、さらにカスタマイズした制約条件を定義することができます。

bannerAds