応用情報技術者 2015年 春期 午前2 問26
問題文
“電話番号”列にNULLを含む“取引先”表に対して、SQL文を実行した結果の行数は幾つか。

選択肢
ア:1
イ:2
ウ:3(正解)
エ:4
電話番号列にNULLを含む取引先表のSQL実行結果の行数【午前2 解説】
正解の理由
SQL文の条件は「電話番号が'010'で始まらない」行を抽出しています。
- A社の電話番号は「010-1234-xxxx」で「010」で始まるため除外。
- B社は「020-2345-xxxx」で条件に合う。
- C社はNULLで比較できず除外。
- D社は「030-3011-xxxx」で条件に合う。
- E社は「(010-4567-xxxx)」で「010」で始まらない文字列として条件に合う。
よって、B社、D社、E社の3件が抽出されます。
解法ステップ
- SQLの
LIKEとNOT LIKEの意味を確認する。 - 電話番号列の各値が「010」で始まるかどうかを判定する。
- NULLは比較できず、条件に合わないため除外されることを理解する。
- 条件に合う行数をカウントする。
選択肢別の誤答解説
- ア: 1件は「010」で始まらない行が1件だけと誤認。実際は3件ある。
- イ: 2件はNULLを含めてカウントしなかったか、E社の電話番号を誤認。
- ウ: 3件は正しくB社、D社、E社をカウントしている。
- エ: 4件はNULLを含めてカウントした誤り。NULLは比較対象外で除外される。
よくある誤解
NULLは「NOT LIKE」条件にマッチしないため、結果に含まれません。NULLを含む行が条件に合うと誤解しやすいです。
補足コラム
SQLにおけるNULLは「不明な値」を意味し、比較演算子では常にFALSEまたはUNKNOWNとなります。
LIKEやNOT LIKEもNULLに対してはFALSE扱いとなり、結果セットに含まれません。NULLの扱いはSQLの基本であり、試験でも頻出のポイントです。FAQ
Q: NULLは
A: いいえ、NULLは比較できないため条件に合致せず、結果に含まれません。
NOT LIKEの条件に合致しますか?A: いいえ、NULLは比較できないため条件に合致せず、結果に含まれません。
Q: 電話番号が「(010-4567-xxxx)」の場合、
A: 「(」が先頭のため「010」で始まらず、条件に合致します。
NOT LIKE '010%'はどう判定されますか?A: 「(」が先頭のため「010」で始まらず、条件に合致します。
関連キーワード: SQL, NULL, LIKE演算子、NOT LIKE, データベース、条件検索

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

