ホーム > データベーススペシャリスト試験 > 2013年
データベーススペシャリスト試験 2013年 午前2 問08
SQLで用いるカーソルの説明のうち、適切なものはどれか。
ア:COBOL、Cなどの親言語内では使用できない。
イ:埋込み型SQLにおいて使用し、会話型SQLでは使用できない。(正解)
ウ:カーソルは検索用にだけ使用可能で、更新用には使用できない。
エ:検索処理の結果集合が単一行となる場合の機能で、複数行の結果集合は処理できない。
解説
SQLのカーソルについての解説
1. カーソルとは?
カーソルは、SQL文の実行結果(特に複数行の結果セット)から1行ずつ順にデータを取り出して処理を行うための仕組みです。主に、埋込み型SQL(プログラム中にSQLを埋め込む方式)で利用されます。
2. 各選択肢の検討
ア: 「COBOL、Cなどの親言語内では使用できない。」
- 誤り
実際にはCOBOLやCといったプログラミング言語の中で、埋込み型SQLとしてカーソルを使うことが一般的です。
たとえば、C言語のプログラム内でプリコンパイラを用いて処理し、カーソルを操作できます。
イ: 「埋込み型SQLにおいて使用し、会話型SQLでは使用できない。」
- 正しい
カーソルは主に埋込み型SQLで仕様されます。というのは、埋込み型SQLでは複雑な処理をプログラムで制御できるため、複数行の結果を逐次処理するのに有用です。
一方、会話型SQL(対話式SQL)では、結果セットをそのまま取得して処理することが多く、カーソルを明示的に操作する機会はほとんどありません。
ウ: 「カーソルは検索用にだけ使用可能で、更新用には使用できない。」
- 誤り
カーソルは検索(SELECT文の結果を扱う)が主な用途ですが、「更新可能カーソル」と呼ばれる種類も存在します。これにより、カーソルで現在指している行の更新・削除が可能です。
つまり、更新用にも使用できます。
エ: 「検索処理の結果集合が単一行となる場合の機能で、複数行の結果集合は処理できない。」
- 誤り
カーソルは、複数行からなる結果セットを1行ずつ処理するために存在します。単一行だけの場合には、通常カーソルを使う必要はありません。
複数行のデータ取得と処理に力を発揮します。
3. まとめ
- カーソルは埋込み型SQLで複数行の結果セットを順に処理するために使われる。
- COBOLやCプログラム内でも使用可能。
- 更新可能なカーソルも存在し、単なる検索専用ではない。
- 複数行の処理に向いており、単一行だけの場合にはカーソル利用は不要。
以上の理由から、正しい選択肢は イ:埋込み型SQLにおいて使用し、会話型SQLでは使用できない。 となります。