平成27年度春期 応用情報技術者試験 午前 問26

分野:データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計)|実際に出題されたIPA過去問題

“電話番号”列にNULLを含む“取引先”表に対して,SQL文を実行した結果の行数は幾つか。取引先表:1001 A社 010-1234-xxxx/2001 B社 020-2345-xxxx/3001 C社 NULL/4001 D社 030-3011-xxxx/5001 E社 (010-4567-xxxx)。〔SQL文〕SELECT * FROM 取引先 WHERE 電話番号 NOT LIKE '010%'

  1.  1
  2.  2
  3.  3
  4.  4
解答・解説を見る

正解:ウ

AI解説

SQLは3値論理であり、NULLとの比較(LIKE、NOT LIKEを含む)は真でも偽でもないUNKNOWNとなり、WHERE句では行が選択されない。よってNULLのC社は抽出されない。E社の電話番号は先頭が「(」なので'010%'に一致せず、NOT LIKEの条件を満たす。結果はB社(020)、D社(030)、E社の3行で、ウが正解である。 ア: 1行は誤り。010で始まらない行はB社・D社・E社の3行あり、1行ではない。 イ: 2行は、E社を「010で始まる」と誤認して除外した場合の数え方である。E社の先頭文字は「(」であり'010%'には一致しないため、E社も抽出される。 ウ: 正解。抽出されるのはB社・D社・E社の3行である。NULLのC社はNOT LIKEでも抽出されない点がポイントである。 エ: 4行は、NULLのC社まで含めた誤りである。NULLとの比較結果はUNKNOWNとなり、NOT LIKEの条件でも行は選択されない。 💡 NULLは「=」「<>」「LIKE」「NOT LIKE」のいずれでも抽出されず、IS NULL/IS NOT NULLでのみ判定できる。NOT条件の問題ではNULL行の扱いが定番のひっかけである。

出典:平成27年度 春期 応用情報技術者試験 午前 問26 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「データベース」分野の攻略ポイント

関係モデル・正規化・SQL・トランザクション管理・障害回復・データベース設計が中心です。計算問題は少なく、定義と手順を正確に覚えていれば確実に得点できる、いわば「取りこぼしてはいけない」分野です。特に正規形とACID特性は毎年のように形を変えて出ます。

データベースの攻略ポイントをすべて見る(要点5項目・ひっかけ3項目)→

同じ分野(データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計))の過去問