応用情報技術者 2013年 春期 午前2 問29
問題文
埋込みSQLにおいて、問合せによって得られた導出表を1行ずつ親プログラムに引き渡す操作がある。この操作と関係の深い字句はどれか。
選択肢
ア:CURSOR(正解)
イ:ORDER BY
ウ:UNION
エ:UNIQUE
埋込みSQLにおける導出表の1行ずつの引き渡し操作【午前2 解説】
要点まとめ
- 結論:導出表を1行ずつ親プログラムに引き渡す操作は「CURSOR」に関係します。
- 根拠:CURSORはSQLの結果セットを逐次処理するための仕組みで、1行ずつデータを取得可能です。
- 差がつくポイント:ORDER BYやUNIONは結果の並びや結合に関するキーワードであり、1行ずつの引き渡しとは直接関係しません。
正解の理由
CURSORは埋込みSQLで問合せ結果を逐次的に処理するための制御構造です。導出表(結果セット)を一括で受け取るのではなく、1行ずつ親プログラムに渡して処理を行う際に使います。これにより大量データの効率的な処理や逐次的なデータ操作が可能となります。
よくある誤解
ORDER BYは結果の並び順を指定するだけで、行単位の引き渡しとは無関係です。UNIONは複数の問合せ結果を結合する操作であり、CURSORの役割とは異なります。
解法ステップ
- 問題文の「導出表を1行ずつ親プログラムに引き渡す操作」に注目する。
- SQLのキーワードの意味を整理し、1行ずつ処理する仕組みを考える。
- CURSORが逐次的に行を取得する機能であることを確認する。
- 他の選択肢が行単位の引き渡しに関係しないことを理解する。
- よって「ア: CURSOR」が正解と判断する。
選択肢別の誤答解説
- ア: CURSOR — 正解。問合せ結果を1行ずつ処理するための制御構造。
- イ: ORDER BY — 結果の並び順を指定する句であり、行単位の引き渡しとは無関係。
- ウ: UNION — 複数の問合せ結果を結合する操作で、逐次処理とは異なる。
- エ: UNIQUE — 重複排除の制約や句であり、行の引き渡し操作とは関係ない。
補足コラム
CURSORは埋込みSQLだけでなく、ストアドプロシージャやトリガー内でも利用されます。大量データを一括で処理するとメモリ負荷が高くなるため、CURSORを使って1行ずつ処理することで効率的なリソース管理が可能です。ただし、CURSORは処理速度が遅くなる場合もあるため、必要に応じて使い分けることが重要です。
FAQ
Q: CURSORはどのように宣言・使用しますか?
A: 一般的にCURSORはSQL文で宣言し、OPENで開き、FETCHで1行ずつ取得し、最後にCLOSEで閉じます。
A: 一般的にCURSORはSQL文で宣言し、OPENで開き、FETCHで1行ずつ取得し、最後にCLOSEで閉じます。
Q: ORDER BY句はCURSORの動作に影響しますか?
A: はい。CURSORで取得する行の順序はORDER BY句で指定した順序になります。
A: はい。CURSORで取得する行の順序はORDER BY句で指定した順序になります。
関連キーワード: 埋込みSQL, CURSOR, 導出表、逐次処理、SQL制御構造

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

