データベース比較問題

SQLにおける「DELETE文」と「TRUNCATE文」の違いとして、最も適切なものはどれか。

A.DELETE文はトランザクションのロールバックが可能だが、TRUNCATE文は一般にロールバックできず処理が高速である。← 正解
✓ 正解です。DELETE文はDML命令でトランザクション管理下に置かれロールバック可能ですが、TRUNCATE文はDDL命令として扱われることが多く、高速な一括削除を行います。
B.DELETE文はテーブル定義ごと削除し、TRUNCATE文は行データのみを削除する。
✗ テーブル定義ごと削除するのはDROP TABLE文です。DELETE・TRUNCATE共にテーブル構造は残します。
C.TRUNCATE文はWHERE句を指定して特定行のみ削除できるが、DELETE文は全行のみ削除できる。
✗ WHERE句で条件を指定して特定行を削除できるのはDELETE文です。TRUNCATE文は全行を一括削除します。
D.DELETE文とTRUNCATE文は機能的に完全に同一であり、どちらを使っても差異はない。
✗ 両者はトランザクションの扱いや処理速度、WHERE句の使用可否など複数の点で異なります。

基本情報技術者試験 の問題一覧