応用情報技術者 2015年 春期 午前2 問27
問題文
埋込みSQLにおいて、問合せによって得られた導出表を1行ずつ親プログラムに引き渡す操作がある。この操作と関係の深い字句はどれか。
選択肢
ア:CURSOR(正解)
イ:ORDERBY
ウ:UNION
エ:UNIQUE
埋込みSQLにおける導出表の1行ずつの引き渡し操作【午前2 解説】
要点まとめ
- 結論:導出表を1行ずつ親プログラムに引き渡す操作は「CURSOR」が関係します。
- 根拠:CURSORはSQLの結果セットを逐次処理するための仕組みで、1行ずつデータを取得可能です。
- 差がつくポイント:ORDERBYやUNIONは結果の並びや結合に関するキーワードであり、逐次処理とは直接関係しません。
正解の理由
ア: CURSORは、埋込みSQLで問合せ結果の導出表を1行ずつ親プログラムに渡すための制御構造です。CURSORを使うことで、複数行の結果を一括で受け取るのではなく、1行ずつフェッチ(取得)しながら処理できます。これにより、メモリ効率が良くなり、大量データの処理に適しています。
よくある誤解
ORDERBYは結果の並び順を指定するだけで、1行ずつの引き渡しとは無関係です。UNIONは複数のSELECT結果を結合する操作であり、逐次処理とは異なります。
解法ステップ
- 問題文の「導出表を1行ずつ親プログラムに引き渡す操作」に注目する。
- SQLの逐次処理に関わるキーワードを思い出す。
- CURSORは結果セットを1行ずつ処理するための仕組みであると理解する。
- 他の選択肢が逐次処理に関係ないことを確認する。
- よって正解はアのCURSORと判断する。
選択肢別の誤答解説
- イ: ORDERBY
結果の並び順を指定する句であり、1行ずつの引き渡し操作とは無関係です。 - ウ: UNION
複数のSELECT文の結果を結合する操作で、逐次的な行の引き渡しとは異なります。 - エ: UNIQUE
一意性を保証するキーワードであり、行の逐次処理とは関係ありません。
補足コラム
CURSORは埋込みSQLだけでなく、ストアドプロシージャやトリガー内でも利用されます。大量のデータを扱う際に一括取得はメモリ負荷が高いため、CURSORで1行ずつ処理することが多いです。ただし、CURSORの使用はパフォーマンスに影響するため、必要な場合に限定して使うことが推奨されます。
FAQ
Q: CURSORはどのように使われますか?
A: CURSORはSQLで結果セットを宣言し、OPENで開き、FETCHで1行ずつ取得し、最後にCLOSEで閉じます。
A: CURSORはSQLで結果セットを宣言し、OPENで開き、FETCHで1行ずつ取得し、最後にCLOSEで閉じます。
Q: ORDERBYとCURSORはどちらが先に処理されますか?
A: ORDERBYは結果セットの並び順を決めるため、CURSORでFETCHする前に適用されます。
A: ORDERBYは結果セットの並び順を決めるため、CURSORでFETCHする前に適用されます。
関連キーワード: 埋込みSQL, CURSOR, 導出表、逐次処理、SQLフェッチ

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

