基本情報技術者試験 令和7年度 科目A 公開問題 問6
"商品"表に対するSQL 文と同じ結果が得られるSELECT 文はどれか。
【SQL文】 SELECT * FROM 商品 WHERE 仕入先ID IN ('M002', 'M004')

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ウ
IN句は、列の値が括弧内に列挙された値のいずれかと一致する行を抽出します。したがって、「仕入先IDがM002又はM004である」という条件になり、ORで二つの等価条件を結んだウと同じです。表では、M002の食器洗い機と、M004のコーヒーメーカー及びホットプレートの3行が抽出されます。
アのANDで結ぶ指定は誤りです。一つの行の仕入先IDがM002であると同時にM004になることはないので、該当行はありません。ANDは、複数の条件を全て満たす行を抽出する演算子です。
イのINTERSECTを用いる指定は誤りです。INTERSECTは、二つのSELECT文の結果に共通して含まれる行、すなわち積集合を求めます。M002の行とM004の行に共通する行はないので、結果は空になります。
エのBETWEENを用いる指定は誤りです。BETWEENは両端を含む範囲を指定するため、M002からM004までが対象です。この表ではM003の電子レンジと炊飯器まで余分に抽出されます。
【ポイント】 IN句は、同じ列に対する複数の等価条件をORで結んだものと考えられます。 ANDは全条件を満たす場合、ORはいずれかの条件を満たす場合に真となります。 BETWEENは下限と上限の両方を範囲に含むことも覚えておきましょう。
出典:令和7年度 基本情報技術者試験 科目A 公開問題 問6
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の20問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる