- 実体の整合性
テーブルの識別子列または主キーの整合性を、インデックス、UNIQUE 制約、PRIMARY KEY 制約、IDENTITY
プロパティによって保証します。
- ドメインの整合性
データ型によって値の型を、CHECK 制約とルールによって値の形式を、FOREIGN KEY 制約、CHECK
制約、DEFAULT 定義、NOT NULL 定義、およびルールによって値の範囲を制限する。
- 参照整合性
レコードが入力または削除されたとき、定義されたテーブル間の関係を維持します。参照整合性によって、テーブル間でのキー値の一貫性を維持
する。
- ユーザー定義の整合性
そのほかの整合性に当てはまらない特定のビジネス ルールを定義する。
SQL Server 2000 は、5 つの制約のクラスをサポートしています。
制約 |
説明 |
NOT NULL |
列に NULL 値が受け入れられない。CREATE TABLE cust_sample
(
cust_id int PRIMARY KEY,
cust_name char(50) NOT NULL,
CONSTRAINT chk_id
CHECK (cust_id BETWEEN 0 and 10000 )
)
|
CHECK 制約 |
列に入れることができる値を制限する。CREATE TABLE cust_sample
(
cust_id int PRIMARY KEY,
CONSTRAINT chk_id
CHECK (cust_id BETWEEN 0 and 10000 )
)
|
UNIQUE 制約 |
一連の列の中にある値の一意性を設定 |
PRIMARY KEY 制約 |
その値が一意にテーブル内の行を識別する列または列セットを指定CREATE TABLE cust_sample
(
cust_id int PRIMARY KEY,
cust_name char(50) NOT NULL,
CONSTRAINT chk_id
CHECK (cust_id BETWEEN 0 and 10000 )
)
|
FOREIGN KEY 制約 |
その値が一意にテーブル内の行を識別する列または列セットを指定する。
インデックスは自動的に作成されないが、結合に多用されている場合は、インデックスを作成したほうが良い。
CREATE TABLE order_part
(
order_nmbr int,
part_nmbr int FOREIGN KEY
REFERENCES part_sample(part_nmbr)
ON DELETE NO ACTION,...
|