TECH I.S.

SQL CHECK制約


SQL CHECK制約

CHECK制約は、カラムに配置できる値の範囲を制限するために使用されます。

カラムにCHECK制約を定義すると、このカラムに対して特定の値のみを許可するようになります。

テーブルにCHECK制約を定義すると、行の他の列の値に基づいて、特定の列の値を制限することができます。


CREATE TABLEのSQL CHECK

次のSQLは"Persons"テーブルが作成されるときの"Age"列にCHECK制約を作成します。このCHECK制約により、人物の年齢が18歳以上であることが保証されます。

MySQL:

CREATE TABLE Persons(     ID int NOT NULL,    LastName varchar(255) NOT NULL,    FirstName varchar(255),    Age int,    CHECK (Age>=18) );

SQL Server/Oracle/MS Access:

CREATE TABLE Persons(     ID int NOT NULL,    LastName varchar(255) NOT NULL,    FirstName varchar(255),    Age int CHECK (Age>=18) );

CHECK制約に名前を付け、複数の列にCHECK制約を定義するには、次のSQL構文を使用します:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons(     ID int NOT NULL,    LastName varchar(255) NOT NULL,    FirstName varchar(255),    Age int,    City varchar(255),    CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') );



ALTER TABLEのSQL CHECK

テーブルが既に作成されている場合に "Age" 列にCHECK制約を適用するには、次のSQLを使用します。

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CHECK (Age>=18);

CHECK制約に名前を付け、複数の列にCHECK制約を定義するには、次のSQL構文を使用します。

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');



CHECK制約を削除する

CHECK制約を削除するには、次のSQLを使用します。

SQL Server/Oracle/MS Access:

ALTER TABLE Persons DROP CONSTRAINT CHK_PersonAge;

MySQL:

ALTER TABLE Persons DROP CHECK CHK_PersonAge;



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細