すべてのデータを削除するときdelete文を使用すると時間がかかった経験はありませんか?今回はdelete文の代わりとして使用するTRUNCATE文のメリットとデメリットを学んでいきましょう。
今回はTRUNCATE文のメリットとデメリットについてお勉強しましょう!
目次
TRUNCATE文とDELETE文
TRUNCATEとDELETEの違いは何でしょうか?今回は2つの違いについてお勉強しましょう。
TRUNCATEとは?
TRUNCATEとはテーブルのすべてのデータを削除するコマンドです。
構文は次のようになります。
TRUNCATE [TABLE] table_name
例として、penchanというテーブル名のデータをすべて削除したい場合は次のように書きます。
TRUNCATE TABLE penchan
DELETE文とは?
DELETE文もテーブルのデータを削除するコマンドです。
構文は次のようになります。
DELETE FROM table_name [WHERE 条件]
例として、penchanというテーブル名のデータをすべて削除したい場合は次のように書きます。
DELETE FROM penchan
TRUNCATEとDELETEの違いは?
DELETE文で条件を指定しない場合と、TRUNCATEでは同じことができます。
しかしDELETE文ではデータを1レコードずつ削除するのに対して、TRUNCATE文はテーブルを削除して改めてテーブルが作成されます。TRUNCATEを使うメリットとデメリットは以下のようになります。
TRUNCATEのメリット
- データが多い場合には高速
TRUNCATEのデメリット
- ロールバックができない
TRUNCATE文はデータ量の多いテーブルのすべてのデータを消したい&ロールバックはしない場合に使用しましょう。
まとめ
TRUNCATEとDELETE文についてまとめると以下のようになります。
TRUNCATEとDELETE文の比較
- DELETE文⇒データを1レコードずつ削除する
- TRUNCATE文⇒テーブルを削除して再作成する
今回はTRUNCATE文のメリットとデメリットについてお勉強しました!