DBデータベーススペシャリスト試験 午前Ⅱ
平成30年度春期 データベーススペシャリスト 午前Ⅱ 問6
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アCURRENT OF A1
- イCURRENT OF B
- ウCURSOR B OF A
- エCURSOR B OF A1
解き方のヒントを見る
カーソル更新文の役割を見分ける視点
カーソルを使う更新文は、宣言・処理開始・行の取得・更新対象の指定などを分けて考え、各要素が文全体のどの段階に関わるかを整理すると、役割の違いを比較しやすくなります。まず処理の流れを図にして確認しましょう。
この問題で問われていること
一つの要素が「対象を定義するもの」か「処理を開始するもの」か「対象行に働きかけるもの」かを、前後の記述との関係から分類する観点に絞って確認しましょう。用語の似ている点ではなく、担う段階の違いに注目します。
視点
カーソル関連の構成要素は、名前や見た目だけでなく、処理の時系列、参照対象、実行時に受け持つ責務という軸で整理します。各要素の説明が、どの段階と責務に結び付くかを読み比べましょう。
確認ポイント
- 各要素が処理のどの段階に関係するかを確認する
- 参照対象と操作対象の説明を分けて整理する
- 似た用語の違いを担う責務の観点で比較する
正解と解説を見る
正解
イ
解説
このSQLは、A表についてカーソルBが現在指している行を対象に、A2とA3を更新する操作です。A1は主キー列であり、カーソル名ではありません。
理由
カーソルを用いたUPDATEでは、WHERE句でカーソルの現在位置にある行を指定できます。ここではカーソル名がBであるため、その指定にはBを用います。
比較
A1はA表の主キー列名であり、Aは表名です。一方、Bはカーソル名です。したがって、列や表を示す語句ではなく、カーソルを示す語句を選ぶ必要があります。
選択肢ア
これは不正解だよ。A1はA表の主キーとして示された列名であり、カーソル名ではありません。CURRENT OFの後には、この更新操作で使っているカーソルを指定するため、A1を置くことはできません。
選択肢イ(正解)
これは正解だよ。CURRENT OFはカーソルが現在指している行を更新対象にする指定です。この問題ではカーソル名がBなので、WHERE句はCURRENT OF Bとなり、A2を1、A3を2に更新します。
選択肢ウ
これは不正解だよ。CURSOR B OF Aという語句は、カーソルの現在行をUPDATEの対象として指定するWHERE句の構文になっていません。Aは表名、Bはカーソル名ですが、語の並びも指定方法も適切ではありません。
選択肢エ
これは不正解だよ。CURSOR B OF A1という語句は、カーソルの現在行を指定するSQL構文ではありません。さらにA1は主キー列名であり、カーソル名や現在行指定の対象を表す語ではないため、適切な記述になりません。
学習のポイント
CURRENT OF構文と、表の列名・主キー・カーソル名の役割を区別して学習しましょう。
出典:独立行政法人 情報処理推進機構(IPA)平成30年度春期 データベーススペシャリスト試験 午前Ⅱ 問6(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針