NULLとは?
NULLとは、値が存在しない、または不明であることを表す標識。値ではないので、比較演算の対象にならない。
データベーススペシャリスト試験の過去問では22回出題されています(2017年度〜2025年度)。
ヌル
NULLの意味
値が存在しない、または不明であることを表す標識。値ではないので、比較演算の対象にならない。
NULLの具体例
未入力の退職日、外部結合で相手がいなかった列。
NULLは試験でどう引っ掛けられる?
COUNT(\*)以外の集約関数はNULLの行を計算対象から除外する。AVGはNULL行を件数にも含めないため、NULLを0とみなした平均とは値が異なる。この性質を利用して条件付き集計(CASE式で条件外をNULLにしてCOUNT)が書ける。
NULLと関連する用語
NULLが出た過去問
“社員”表から、部署コードごとの主任の人数と一般社員の人数を求めるSQL文とするために、aに入る字句はどれか。ここで、実線の下線は主キーを表す。 社員(社員コー…
正解:THEN 1 ELSE NULL
要点:COUNTがNULLを無視する性質で条件付き集計を行う
COUNT関数は引数がNULLの行を数えないという性質がある。これを利用し、条件に合う行だけ1を返し、合わない行はNULLを返すようにすれば、条件付きの件数を数えられる。ELSE 0にすると全行が計数対象になってしまう点に注意する。
出典:平成29年度 春期 データベーススペシャリスト試験 am2 問8(IPA)SQLが提供する3値論理において、Aに5、Bに4、CにNULLを代入したとき、次の論理式の評価結果はどれか。 (A > C) or (B > A) or (C …
正解:unknown(不定)
要点:NULLとの比較はunknown、false ORするとunknownのまま
NULLとの比較演算の結果はtrueでもfalseでもなくunknownになる。ここではCがNULLなので(A>C)と(C=A)はいずれもunknown、(B>A)は4>5でfalseとなる。ORはunknownとfalseの組合せではunknownになるため、式全体の評価結果はunknownである。
出典:平成29年度 春期 データベーススペシャリスト試験 am2 問9(IPA)ある月の“月末商品在庫”表と“当月商品出荷実績”表を使って、ビュー“商品別出荷実績”を定義した。このビューにSQL文を実行した結果の値はどれか。 月末商品在庫:…
正解:400
要点:外部結合で生じたNULLはWHERE条件では選ばれない
ビューは左外部結合で作られているため、出荷実績のない商品は出荷実績数がNULLになる。WHERE句の条件はNULLに対してunknownとなり行が選ばれないので、対象は出荷実績数150の商品と300の商品の2件だけとなる。それぞれの月末在庫数100と300を合計して400になる。
出典:平成29年度 春期 データベーススペシャリスト試験 am2 問10(IPA)PCへのメモリカードの取付け状態を管理するデータモデルを作成した。1台のPCは、スロット番号によって識別されるメモリカードスロットを二つ備える。“取付け”表を定…
正解:PRIMARY KEY(PCID, スロット番号), UNIQUE(メモリカードID),
要点:取付け位置は複合主キー、カードの重複はUNIQUEで防ぐ
1台のPCは2つのスロットをもち、スロットごとに1枚のカードが取り付けられるため、PCIDとスロット番号の組が取付けを一意に識別する主キーになる。さらに1枚のメモリカードが同時に複数のスロットへ取り付けられることはないので、メモリカードIDに一意性制約が必要になる。
出典:平成29年度 春期 データベーススペシャリスト試験 am2 問11(IPA)“社員”表に対して、SQL文を実行して得られる結果はどれか。ここで、実線の下線は主キーを表し、表中の'NULL'は値が存在しないことを表す。 〔社員〕 社員コー…
正解:社員コード: S002, S004, S007
要点:NOT EXISTSの相関副問合せで「部下を持たない社員」を抽出
この副問合せは「自分の社員コードを上司として持つ社員が存在するか」を調べており、NOT EXISTSで否定しているので、誰の上司にもなっていない社員だけが選ばれる。表では上司欄に現れるコードが部下を持つ社員なので、そこに一度も現れない社員が結果になる。
出典:平成30年度 春期 データベーススペシャリスト試験 am2 問5(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。