基本情報技術者令和7年 [科目A]問6

問6

"商品"表に対するSQL文と同じ結果が得られるSELECT文はどれか。
06.png/image-size:406×216
〔SQL文〕
SELECT * FROM 商品 WHERE 仕入先ID IN('M002','M004')
  • SELECT * FROM 商品 WHERE 仕入先ID = 'M002' AND 仕入先ID = 'M004'
  • SELECT * FROM 商品 WHERE 仕入先ID = 'M002'
    INTERSECT
    SELECT * FROM 商品 WHERE 仕入先ID = 'M004'
  • SELECT * FROM 商品 WHERE 仕入先ID = 'M002' OR 仕入先ID = 'M004'
  • SELECT * FROM 商品 WHERE 仕入先ID BETWEEN 'M002 'AND 'M004'

分類

テクノロジ系 » データベース » データ操作

正解

解説

設問の〔SQL文〕は、商品表のうち仕入先IDが('M002', 'M004')に含まれる行を選択し、その全列を出力するというものです。結果は以下の3行となります。
06_1.png/image-size:406×116
  • WHERE句の条件がANDで結ばれているので、仕入先IDが'M002'かつ'M004'の行が選択されます。該当する行は存在しないため、結果は0行となります。
  • 仕入先IDが'M002'の行を選択した結果と、仕入先IDが'M004'の行を選択した結果とのINTERSECT(積集合)を求めています。2つの結果に共通する行は存在しないため、結果は0行となります。
  • 正しい。WHERE句の条件がORで結ばれているので、仕入先IDが'M002'または'M004'の行が選択されます。この結果、設問の〔SQL文〕と同じ3行が出力されます。
    06_1.png/image-size:406×116
  • 範囲指定をするBETWEEN句が使われているので、仕入先IDが'M002'以上'M004'以下の行が選択されます。'M002'・'M003'・'M004'の行にマッチするため、結果は以下の5行となります。
    06_2.png/image-size:406×170
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop