テクノロジ系21 / 25問
システム監査技術者試験 令和6年度 秋期 午前II 問21
"納品"表と"顧客"表の自然結合と同じ結果を得るSQL文はどれか。

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】エ
図を見ると、「納品」表の列は顧客番号、商品番号、納品数量であり、「顧客」表の列は顧客番号、顧客名です。自然結合では、二つの表に共通する同名の列を結合条件として、値が等しい行同士を結び付けます。また、共通する列は結果に一つだけ出力されます。この場合は顧客番号が共通列なので、顧客番号が一致する行を結合し、顧客番号、商品番号、納品数量、顧客名を出力するエが自然結合と同じ結果になります。
アのSQL文は誤りです。副問合せが顧客番号を複数返す可能性があるのに、一つの値との比較に用いる「=」を使っています。複数値との比較にはINなどが必要であり、さらに顧客名も出力されません。
イのSQL文は誤りです。行の結合条件は同じですが、SELECT *では納品表の顧客番号と顧客表の顧客番号が両方出力されます。これは等値結合の結果であり、共通列を一つにまとめる自然結合とは列構成が異なります。
ウのSQL文は誤りです。顧客番号が一致する行は抽出できますが、出力列が納品表の三列だけで、顧客表の顧客名が含まれません。
【ポイント】 自然結合は、同名列について等値結合を行い、重複する結合列を一つにまとめます。 試験では、抽出される行だけでなく、SELECT句による結果表の列構成まで確認することが重要です。
出典:令和6年度 秋期 システム監査技術者試験 午前II 問21
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる