制約の種類

この記事では制約の種類について解説します。

 制約とは

制約とはデータの整合性を保つために表の列に入力できる値を制限する仕組みです。

英語ではCONSTRAINTと表記されます。

データの挿入、更新時に制約に違反していないかチェックされ、違反している場合はエラーとなります。

この仕組みによって意図せぬデータが入力されてしまうのを防ぐことができます。


 制約の種類

Oracle Databaseには以下の種類の制約が設定できます。

・NOT NULL制約

列の値がNULLになることを許容しない制約です。

この制約が設定された列には必ず値を入力する必要があります。

・ユニーク制約

列および列の組み合わせが一意であることを保証する制約です。

列だけでなく列の組み合わせにも制約を設定できます。

値がNULLになること、NULLが複数行で重複することは許容されます。

一意キー制約と呼ばれることもあります。

・主キー制約

列および列の組み合わせが一意であり、かつ値がNULLでないことを保証する制約です。

列だけでなく列の組み合わせにも制約を設定できます。

NOT NULL制約とユニーク制約を併せ持つような制約です。

主キー制約は1つの表に対して1つしか設定できません。

主キー制約を設定することによって、設定した列から行を一意に識別できます。

主キーがあることを前提とした機能もあるので、主キー制約は必ず設定することが推奨されます。

・参照整合性制約

設定された列の値が指定された表の列の値として存在することを保証する制約です。

参照される側の列は主キー制約もしくはユニーク制約が設定されている必要があります。

外部キー制約と呼ばれることもあります。

・チェック制約

指定した条件に合致する値のみを許容する制約になります。

制約を設定時に条件も併せて設定します。