目的
- DBのテーブル設計をするにあたり基礎的な知識としての「DBの制約」について知る。
DBの制約とは??
- DBのルールのこと。
- リレーショナルデータベース(RDB)で扱うテーブルに対しての決め事や絶対条件を指す。
制約の種類
NOT NULL制約
- 自分でテーブルの列毎に設定することが可能である。
- ただし主キーに当たる列は勝手にDBMS側でNOT NULL制約が設定されている。
- DBにデータを登録するときに、当該レコードの一部カラムにデータが存在していないことがありうる。
- NOT NULL制約を課している列のカラムにデータがない(NULL)状態でDBに登録されようとしているときにSQL側でエラーを返す。
- カラムにデータが入っていないとSQLで問題を起こすことがあるので、基本的にDBのテーブルのすべての列はNOT NULL制約をすることが一般的である。
一意制約
- 自分でテーブルの列毎に設定することが可能である。
- テーブル内の列のデータに対して一意性を求めることができる。
- 同じようなテーブル内で一意になる列である、主キーは1テーブルにつき1列しか定義できないのに対し、一意制約では複数の列に対して制約を課すことができる。
- 一意制約がかけられている列でデータ重複を検出した時、SQL側でエラーを返す。
CHECK制約
- 自分でテーブルの列毎に設定することが可能である。
- テーブル内の列のデータに対して取りうる値の範囲を制限するためのものである。
- 年齢の列に0~130までの値のみ入力可能にするなどの制約を付けられる。
- 一つのテーブルに対しいくつも設定することができるが、列同士の比較はできない。(A列>B列になるようにCHECK制約を課すなどは不可能)