データベース

基本情報技術者試験 科目A免除 修了試験 20110724 実施分 問34

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

出典:基本情報技術者試験 科目A免除 修了試験 20110724 実施分 問34

答えと解説を見る

正解:エ

覚える知識

SQLのNOT INとNOT EXISTSの等価性

NOT EXISTSは副問合せ結果が空のとき真となり、結合条件を付ければNOT INと等価になる。

この問題で必要なこと

NOT INの副問合せは、相関副問合せ(商品番号の一致条件付き)のNOT EXISTSと同じ結果になる。

ひっかけ

結合条件のないEXISTS/NOT EXISTS(ア・イ)や、NOTのないEXISTS(ウ)は意味が異なる。

この知識の出題:本試験系 2 回・免除試験 6 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「SQLの検索条件(WHERE・LIKE・IN・EXISTS)」で学ぶ

同じ知識の過去問