修了試験 2022-12-11実施分 基本情報技術者試験 問27
“商品”表,“在庫”表に対する次のSQL文の結果と同じ結果が得られるSQL文はどれか。 ここで,(主キー)を付けた項目は主キーを表す。 SELECT 商品番号 FROM 商品 WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 在庫) 商品:|商品番号(主キー)|商品名|単価 在庫:|倉庫番号(主キー)|商品番号(主キー)|在庫数
正答4
解説
正解は4です。 元のSQL文は、商品表の商品番号のうち、在庫表に1件も現れないものを取り出します。 つまり「在庫が登録されていない商品」の一覧です。 これと同じ結果を、EXISTSを使った相関副問合せで書いたものを選びます。 【選択肢別解説】 1:× 在庫表から取り出しているので、在庫に登録された商品番号しか得られません。 また副問合せが外側の表と結び付いていないため、商品表が空でなければ在庫表の全行が出力されます。 2:× 副問合せが外側の表と結び付いていないので、商品表に1行でもあれば何も出力されません。 在庫のない商品を取り出すことはできません。 3:× 在庫表に同じ商品番号がある商品だけを取り出します。 これは「在庫が登録されている商品」で、元のSQL文とは逆の結果です。 4:○ 商品表の各行について、在庫表に同じ商品番号の行が存在しないときだけ出力します。 これは元のNOT INと同じく「在庫が登録されていない商品」の一覧です。 【ポイント】 NOT INはNOT EXISTSの相関副問合せに、INはEXISTSの相関副問合せに書き換えられます。 相関副問合せでは、副問合せの中で外側の表の列を参照する条件が必要です。まとめて解く
修了試験 2022-12-11実施分を通しで解く(80問)→