NOT NULL制約とは?のっとぬるせいやく
NOT NULL制約とは、表の列にNULL(値が存在しないことを表す印)を格納できないようにする制約。投入の時点で欠落を弾くため、その列を条件や集計に使う問合せから「不定」の扱いを排除できる。主キーを構成する列には、実体保全性の要請として明示しなくても課される。
最終更新:2026-10-07
高度試験の午前Iを最短で暗記する →背景
NULLは0でも空文字でもなく「値が無い」という状態そのもので、これが混ざると比較の結果が真でも偽でもない第三の値になり、条件式も集計も直感どおりに動かなくなる。問合せのたびに例外を書くより、そもそも入らないようにするほうが安い。制約は入力の検査をアプリケーションではなくDBMS側に持たせる仕組みで、どの経路から書き込まれても効く点に価値がある。
具体例
受注表の受注日にこの制約を付けておけば、日付が空のまま登録され、期間指定の集計から黙って漏れる事故を防げる。既にNULLを含む表へ後から付ける場合は、先に既定値で埋めておかないと定義変更そのものが失敗する。
試験での引っ掛け
空文字列や0はNULLではないため、この制約があっても未入力を意味する空文字は入り得る。保証されるのは値が存在することだけで、意味のある値であることではない。NULLどうしの比較が等しいと判定されないこと、COUNT(列名)はNULLの行を数えないがCOUNT(*)は数えることも、同じ性質から出ている。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。