HOME»基本情報技術者令和7年»[科目A]問6
基本情報技術者令和7年 [科目A]問6
問6
"商品"表に対するSQL文と同じ結果が得られるSELECT文はどれか。
〔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行となります。

- WHERE句の条件がANDで結ばれているので、仕入先IDが'M002'かつ'M004'の行が選択されます。該当する行は存在しないため、結果は0行となります。
- 仕入先IDが'M002'の行を選択した結果と、仕入先IDが'M004'の行を選択した結果とのINTERSECT(積集合)を求めています。2つの結果に共通する行は存在しないため、結果は0行となります。
- 正しい。WHERE句の条件がORで結ばれているので、仕入先IDが'M002'または'M004'の行が選択されます。この結果、設問の〔SQL文〕と同じ3行が出力されます。

- 範囲指定をするBETWEEN句が使われているので、仕入先IDが'M002'以上'M004'以下の行が選択されます。'M002'・'M003'・'M004'の行にマッチするため、結果は以下の5行となります。

