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;
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。