SQL入門チュートリアルマニュ...ログイン
SQL入門チュートリアルマニュアル
著者:php.cn  更新時間:2022-04-12 14:15:40

SQLチェック



SQL CHECK 制約

CHECK 制約は、列内の値の範囲を制限するために使用されます。

単一の列に CHECK 制約を定義すると、その列には特定の値のみが許可されます。

テーブルに CHECK 制約を定義すると、その制約は行内の他の列の値に基づいて特定の列の値を制限します。


CREATE TABLE 時の SQL CHECK 制約

次の SQL は、「persons」テーブルの作成時に「P_Id」列に CHECK 制約を作成します。 CHECK 制約では、「P_Id」列には 0 より大きい整数のみを含める必要があると規定されています。

MySQL:

CREATE TABLE persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) 、
check(p_id> 0)

sqlserver / oracle / ms access:

createテーブル担当者(
p_idint not null check(p_id> 0)、
lastnamevarchar(255)nol null null ,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
CHECK 制約に名前を付け、複数の列に CHECK 制約を定義する必要がある場合は、次の SQL 構文を使用してください:

MySQL/SQL Server/Oracle/MS Access:

CREATE TABLE persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_person CHECK (P_Id>0 AND City='Sandnes')
)


ALTER TABLE 時の SQL CHECK 制約

テーブルの作成時に、「」を入力する必要がある場合は、 P_Id" 列に CHECK 制約を作成するには、次の SQL を使用してください:

MySQL/SQL Server/Oracle/MS Access:

ALTER TABLE persons
ADD CHECK (P_Id>0)
CHECK 制約に名前を付けて定義する必要があります。 複数の列に対する CHECK 制約の場合は、次の SQL 構文を使用してください:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT chk_person CHECK ( P_Id>0 AND City='Sandnes')


CHECK 制約を取り消す

CHECK 制約を取り消すには、次の SQL を使用してください:

SQL Server / Oracle / MS Access:

ALTER TABLE persons
DROP CONSTRAINT chk_person

MySQL :

ALTER TABLE persons
DROP CHECK chk_person