検査制約とは?けんさせいやく
検査制約とは、列に入れてよい値の条件を表の定義にあらかじめ書いておき、その条件に反する追加や更新をデータベース側で拒否する制約。SQLではCHECK句を使い、「数量は1以上」「区分はA・B・Cのいずれか」のように書く。どの画面や経路から来た更新であっても同じ判定が効く。
最終更新:2026-10-09
基本情報を最短で暗記・合格する →背景
入力の確認を画面側にだけ書くと、画面が増えるたびに同じ規則を書き写すことになり、どれか一つで書き漏らせばそこから不正な値が入り込む。管理者が直接SQLで書き換えた場合は、そもそも画面を通らない。値が満たすべき条件はデータそのものの性質なので、表の定義に置いてすべての更新に効かせる。基本情報では4種類の制約の使い分けが問われる。
具体例
注文明細表の数量列に CHECK (数量 >= 1) を定義しておけば、誤って0や負の数を登録しようとした時点で拒否される。区分の列に CHECK (区分 IN ('A','B','C')) と書けば、決めた3つ以外の値は入らない。
試験での引っ掛け
SQLの条件の判定は、真・偽に加えて「unknown(不明)」の3通りの結果を取る。NULL(値が入っていないことを示す印)を含む比較はunknownになり、その場合、検査制約は違反とみなさず通してしまう。NULLを入れさせたくないなら、これとは別に非NULL制約(NOT NULL)を指定する。他の表に存在する値かどうかを確かめるのは参照制約、値の重複を防ぐのは一意性制約で、役割が分かれている。
関連用語
出典・参考
公式シラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。