基本情報トップに戻る
練習問題難易度: 標準2010年度

基本情報技術者 過去問練習問題 第31問

問題

“商品”表,“在庫”表に対する次の SQL 文と、同じ結果が得られる SQL 文はどれか。ここで、下線部は主キーを表す。 SELECT 商品番号 FROM 商品  WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 在庫) 商品(商品番号,商品名,単価) 在庫(在庫番号,商品番号,在庫数)

選択肢

  1. 1SELECT 商品番号 FROM 在庫  WHERE EXISTS (SELECT 商品番号 FROM 商品)
  2. 2SELECT 商品番号 FROM 在庫  WHERE NOT EXISTS (SELECT 商品番号 FROM 商品)
  3. 3SELECT 商品番号 FROM 商品  WHERE EXISTS (SELECT 商品番号 FROM 在庫       WHERE 商品.商品番号 = 在庫.商品番号)
  4. 4SELECT 商品番号 FROM 商品  WHERE NOT EXISTS (SELECT 商品番号 FROM 在庫       WHERE 商品.商品番号 = 在庫.商品番号)

正解

4. SELECT 商品番号 FROM 商品  WHERE NOT EXISTS (SELECT 商品番号 FROM 在庫       WHERE 商品.商品番号 = 在庫.商品番号)

詳しい解説を見る

解説

元の SQL は「在庫表に存在しない商品番号」を商品表から抽出する。これと同じ結果を相関副問合せで表すには、商品表の各行について「在庫表に同じ商品番号が存在しない(NOT EXISTS)」を条件とする。エは商品.商品番号=在庫.商品番号 が成り立つ行が在庫に存在しないものを選ぶので一致する。よってエが正しい。(出典: 平成22年度 春期 基本情報技術者試験 午前 問31)

一問一答

科目A 180問+科目B 60問

練習問題の関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。