NULLとは?ヌル
NULLとは、値が存在しない、または不明であることを表す標識。値そのものではないため = や <> による比較は真にも偽にもならず不定になり、判定にはIS NULLを使う。集約関数・結合・NOT INの結果も、この性質に従って直感からずれた振る舞いをする。
最終更新:2026-10-06
この語が出る過去問を解く →背景
表の1マスに「まだ決まっていない」を表す手段がないと、0や空文字といった実在の値を代用することになり、集計のときに本物の0と区別できなくなる。標識を別に設ければこの混同は消えるが、代わりに真偽の2値では収まらない不定という状態が入り、条件式の評価が三値論理になる。SQLの挙動が読みにくいのは、この設計の代償として理解する。
具体例
未確定の退職日や、外部結合で相手が見つからなかった列に現れる。CASE式で対象外の行をこの状態にしてCOUNTすれば、WHEREで絞り込まずに条件付きの件数を1回の走査で数えられる。
試験での引っ掛け
COUNT(*)以外の集約関数は該当行を除外する。AVGは分母の件数にも数えないため、0とみなして計算した平均とは値が食い違う。NOT IN の副問合せに1件でも混じると結果が常に空になる点も頻出で、NOT EXISTSへ書き換えて避ける。
関連用語
出た過去問
出典:令和3年度 春期 システムアーキテクト試験 午前Ⅱ 問24(IPA)解説で登場
ある月の“月末商品在庫”表と“当月商品出荷実績”表を使って、ビュー“商品別出荷実績”を定義した。このビューにSQL文を実行した結果の値はどれか。 [ビュー“商品…
正解:400
要点:NULLは比較で真にならず、WHERE句の対象から外れる
ビューは外部結合と集約により、商品コードごとの出荷数合計と在庫数を返す。出荷実績のないS002とS004は合計がNULLとなり、WHERE句の比較で真とならず除外される。条件を満たすのは合計150のS001(在庫100)と合計300のS003(在庫300)で、在庫数の合計は400となる。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの3 技術要素 > 2. データベース設計 > (2) データベースの設計に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。