HOME > 削除編
削除(DELETE/TRUNCATE/DROP)
削除に関する操作は「DELETE」と「TRUNCATE」と「DROP」があります。
DELETE
DELETEは表のデータを削除する時に使用します。DELETE実行後にCOMMITを実行する事により削除が完了します。
DELETE実行後に「やっぱり元に戻したい」という時は、COMMITを実行していなければROLLBACKを実行することによりデータは元に戻ります。
DELETEでの削除はREDOログに記録されるため、大量のデータを消すときは時間がかかります。
- DELETE構文
-
DELETE FROM <表名> WHERE 削除条件;
- DELETE例文
- --TEST_TABLE表からID列が999のデータを削除する DELETE FROM TEST_TABLE WHERE ID = 999; COMMIT; --削除を確定させる場合はCOMMIT; ROLLBACK; --削除を取り消す場合はROLLBACK;(COMMIT後だったら不可)
WHERE句を指定しないと対象テーブルの全行が削除されてしまいますのでご注意ください。
TRUNCATE
TRUNCATEは表のデータを削除するという事ではDELETEと変わりませんが、表のデータは全て削除されてしまいます。また、TRUNCATEを実行後に「やっぱり元に戻したい」という事になってもROLLBACKでは戻せません。
これは、TRUNCATEで削除した時はREDOログに削除した履歴が記録されないためなのですが、ログを記録しないためDELETEよりも早く削除を完了させる事が可能です。
TRUNCATE実行後に取消(ROLLBACK)できないので、慎重に実行する必要があります。
- TRUNCATE構文
-
TRUNCATE TABLE <表名>;
- TRUNCATE例文
- --TEST_TABLE表のデータをTRUNCATEする TRUNCATE TABLE TEST_TABLE;
DROP
DELETE, TRUNCATE TABLEコマンドはテーブル(表)の中のデータを削除するコマンドでしたが、DROPコマンドはオブジェクトを削除するコマンドです。
オブジェクトとは、テーブルやビューなどの事です。(左メニューの「オブジェクト」カテゴリに属するものです)なのでDELETE、TRUNCATEとは全く違う意味合いの削除コマンドです。
詳しくはメニューの「オブジェクト」カテゴリの各項目をご覧ください。