令和5年度秋期 応用情報技術者試験 午前 問29

分野:データベース|実際に出題されたIPA過去問題

“製品”表と“在庫”表に対し,次のSQL文を実行した結果として得られる表の行数は幾つか。 SELECT DISTINCT 製品番号 FROM 製品 WHERE NOT EXISTS (SELECT 製品番号 FROM 在庫 WHERE 在庫数 > 30 AND 製品.製品番号 = 在庫.製品番号)

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  1
  2.  2
  3.  3
  4.  4
解答・解説を見る

正解:イ

AI解説

このSQL文は、“在庫”表の中に在庫数が30を超えるレコードが存在しない製品番号を、NOT EXISTSの相関副問合せによって“製品”表から抽出するものである。つまり、在庫数がすべて30以下(または在庫レコード自体がない)製品番号を求めており、該当する行数は2行になる。 ア: 1行では、条件に合致する製品番号を漏れなく数えられておらず、該当する行数と一致しない。 イ: 在庫数がすべて30以下(在庫レコードがない場合を含む)の製品番号を抽出した結果として2行が得られ、これが正解である。 ウ: 3行では条件に合致しない製品番号まで含めて数えてしまっており、NOT EXISTSの条件を満たす行数と一致しない。 エ: 4行はさらに多くの製品番号を含めてしまっており、在庫数30超のレコードが1件も無い製品番号という条件に合致しない。 💡 NOT EXISTS(相関副問合せ)は「外側の行に対応する内側の条件を満たす行が1件も無いものを残す」という意味であり、本問では「在庫数30超の記録が無い製品」を抽出している点を押さえるとよい。

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

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

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

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

同じ分野(データベース)の過去問