プリペアドステートメントに関するネットワークスペシャリスト試験

 了解しました!

ここでは 「プリペアドステートメント(Prepared Statement)」 をテーマにした ネットワークスペシャリスト試験風の択一式問題10問(解答+解説付き) を作成します。



---


プリペアドステートメントに関する問題(10問)



---


問題1


プリペアドステートメントの主な目的はどれか。

A. SQL文を暗号化する

B. SQL文を事前にコンパイルし再利用する

C. データベース接続を増やす

D. テーブルを自動生成する


【正解】B

【解説】プリペアドステートメントは、SQL文を事前にコンパイルして再利用することで効率性と安全性を高める。



---


問題2


プリペアドステートメントを利用する利点として誤っているものはどれか。

A. SQLインジェクション対策になる

B. 実行効率が向上する

C. プレースホルダを利用できる

D. テーブルの自動バックアップが取れる


【正解】D

【解説】プリペアドステートメントはセキュリティや効率向上に寄与するが、バックアップ機能は持たない。



---


問題3


Javaにおける PreparedStatement クラスで値を設定するメソッドはどれか。

A. executeUpdate()

B. setString()

C. prepareCall()

D. createStatement()


【正解】B

【解説】setString や setInt などのメソッドで、SQLのプレースホルダに値を割り当てる。



---


問題4


プリペアドステートメントがSQLインジェクション対策になる理由はどれか。

A. 値がSQL文と別に処理される

B. SQL文をハッシュ化する

C. 文字列を自動的に暗号化する

D. テーブル構造を変更できない


【正解】A

【解説】プリペアドステートメントは値をSQL構文として解釈せず、独立したデータとして扱うためインジェクションを防げる。



---


問題5


次のSQLで「?」に相当するものは何か。


SELECT * FROM employees WHERE emp_id = ?;


A. プレースホルダ

B. サブクエリ

C. コメント

D. 関数呼び出し


【正解】A

【解説】「?」はプレースホルダであり、実行時に値がバインドされる。



---


問題6


プリペアドステートメントと通常のステートメントの違いとして正しいものはどれか。

A. プリペアドステートメントは事前コンパイルされる

B. 通常のステートメントはSQLインジェクションを完全に防げる

C. プリペアドステートメントは複数のSQLを同時に実行する

D. 通常のステートメントは値をバインドできる


【正解】A

【解説】プリペアドステートメントはSQL文が事前コンパイルされ再利用できる。



---


問題7


プリペアドステートメントの利用で性能が向上する場面はどれか。

A. 複数回同じSQLを異なる値で実行する場合

B. 一度だけSQLを実行する場合

C. 複雑なDDL文を実行する場合

D. ストアドプロシージャ呼び出しの場合


【正解】A

【解説】事前コンパイルされたSQLを再利用できるため、繰り返し利用時に効果が高い。



---


問題8


プリペアドステートメントの欠点はどれか。

A. SQLインジェクションのリスクが残る

B. 実行効率が低下する

C. 一度しか利用できない

D. テーブル名や列名はプレースホルダにできない


【正解】D

【解説】プレースホルダにできるのは値であり、テーブル名や列名は対象外である。



---


問題9


次のJavaコードにおいて、SQLの実行を行うメソッドはどれか。


PreparedStatement ps = conn.prepareStatement("INSERT INTO users (id, name) VALUES (?, ?)");

ps.setInt(1, 10);

ps.setString(2, "Taro");


A. ps.execute()

B. ps.setValue()

C. ps.prepare()

D. ps.bind()


【正解】A

【解説】execute() や executeUpdate() を呼び出すことでSQLが実行される。



---


問題10


プリペアドステートメントにおける「プレースホルダ」の主な役割はどれか。

A. SQL文の解析を省略する

B. SQL文に値を安全に埋め込む

C. テーブルを自動生成する

D. SQL文を暗号化する


【正解】B

【解説】プレースホルダは値を安全にSQL文へバインドする仕組みであり、インジェクションを防止する。



---


✅ 以上、プリペアドステートメントをテーマとした10問(解答・解説付き) を作成しました。


ご希望であれば、この内容を 午後Ⅰ形式の短文解析問題 や 午後Ⅱ形式のシナリオ問題(SQLインジェクションとプリペアドステートメントの比較) にも展開できます。

👉 次は午後Ⅰ・午後Ⅱ形式も用意しましょうか?



コメント

このブログの人気の投稿

ミライアイ内服薬は薬事法違反で、ほとんど効果がない詐欺ですか?

最高裁での上告理由書受理・却下の判断基準について

裁判官の忌避申立書の作成例