ORACLE/削除編

オラクルちょこっとリファレンス

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とは全く違う意味合いの削除コマンドです。

詳しくはメニューの「オブジェクト」カテゴリの各項目をご覧ください。

ToTop