問題
“商品”表に対する次のSQL文と同じ結果が得られるSELECT文はどれか。 商品 商品ID/商品名称/仕入先ID/単価 S001/冷蔵庫/M001/155,000 S002/食器洗い機/M002/85,000 S003/電子レンジ/M003/78,000 S004/炊飯器/M003/32,000 S005/コーヒーメーカー/M004/15,000 S006/ホットプレート/M004/12,000 〔SQL文〕 SELECT * FROM 商品 WHERE 仕入先ID IN ('M002', 'M004')
選択肢
- 1SELECT * FROM 商品 WHERE 仕入先ID = 'M002' AND 仕入先ID = 'M004'
- 2SELECT * FROM 商品 WHERE 仕入先ID = 'M002' INTERSECT SELECT * FROM 商品 WHERE 仕入先ID = 'M004'
- 3SELECT * FROM 商品 WHERE 仕入先ID = 'M002' OR 仕入先ID = 'M004'
- 4SELECT * FROM 商品 WHERE 仕入先ID BETWEEN 'M002' AND 'M004'
正解
3. SELECT * FROM 商品 WHERE 仕入先ID = 'M002' OR 仕入先ID = 'M004'
詳しい解説を見る解説を閉じる
解説
元のSQL文の IN ('M002', 'M004') は「仕入先IDがM002またはM004である行」を抽出する条件で、列挙した値のいずれかに一致する行を返す。これと同じ意味を持つのは、OR演算子で2条件を結んだ「ウ」である。アのANDは1つの列が同時にM002かつM004である行を求めるため結果は常に空となり誤り。イのINTERSECTは両SELECTの共通行(積集合)を求めるが、各行の仕入先IDは一意なので共通行が存在せず結果は空。エのBETWEEN 'M002' AND 'M004' はM002〜M004の範囲(M003も含む)を抽出するため対象が異なる。よって「ウ」が正解である。(出典: 令和7年度 基本情報技術者試験 科目A 問6)
一問一答
科目A 180問+科目B 60問