■データの整合性保証の為に、制約とデータベーストリガーが提供されている。
■制約の基本構文
・列制約
CREATE TABLE 表名 (
列名 データ型 [CONSTRAINT 制約名] 制約の種類
[[CONSTRAINT 制約名] 制約の種類]...
[, 列名 データ型 [CONSTRAINT 制約名] 制約の種類
[[CONSTRAINT 制約名] 制約の種類]...]...
);
・表制約
CREATE TABLE 表名 (
列名 データ型
[, 列名 データ型]...
, [CONSTRAINT 制約名] 制約の種類
[, [CONSTRAINT 制約名] 制約の種類]...
);
■エンティティ制約
制約名 |
構文 |
説明 |
NOT NULL整合性制約 |
CREATE TABLE 表名(
列名 データ型 [CONSTRAINT 制約名] NOT NULL
); |
NULL値の入力禁止、別名「必須」。
INSERT文で列に値が指定されなかった場合NULL値となる為、DEFAULT値を指定しエラーを予防する。
|
UNIQUE整合性制約
|
・列制約
CREATE TABLE 表名(
列名 データ型 [CONSTRAINT 制約名] UNIQUE
);
・表制約
CREATE TABLE 表名 (
列名1 データ型,
列名2 データ型,
[CONSTRAINT 制約名] UNIQUE(列名1, 列名2)
);
|
同一値の入力禁止、別名「一意キー制約」 |
PRIMARY KEY整合性制約
|
・列制約
CREATE TABLE 表名(
列名 データ型 [CONSTRAINT 制約名] PRIMARY KEY
);
・表制約
CREATE TABLE 表名 (
列名1 データ型,
列名2 データ型,
[CONSTRAINT 制約名] PRIMARY KEY(列名1, 列名2)
);
|
主キーの宣言、別名「主キー」。 |
CHECK整合性制約 |
・列制約
CREATE TABLE 表名(
列名 データ型 [CONSTRAINT 制約名] CHECK (条件)
);
・表制約
CREATE TABLE 表名 (
列名 データ型,
[CONSTRAINT 制約名] CHECK (条件)
); |
入力値に対する条件(範囲チェック等)の設定。 |
■参照整合性制約
制約名 |
構文 |
説明 |
FORREGN KEY整合性制約 |
・列制約
CREATE TABLE 表名(
列名 データ型 [CONSTRAINT 制約名]
REFERENCES 親表名 (親キー列名)
);
・表制約
CREATE TABLE 表名 (
列名 データ型,
[CONSTRAINT 制約名]
FOREIGN KEY (外部キー列名 [, 外部キー列名]...)
REFERENCES 親表名 (親キー列名 [, 親キー列名]...)
); |
表同士の関連付けを行い、親表と子表の間で整合性を保ちます。
子表に入力される値は必ず親表に存在しなければなりません。
子表の参照列を外部キー、親表の参照列を親キーを呼びます。
|
|