SQLにおいてデータや表の削除にTRUNCATE、DELETE、DROPを利用しますが、明確にそれらの機能や影響範囲がわからなかったので調べてTRUNCATE、DELETE、DROPの違いをまとめました。
コンテンツ
TRUNCATE TABLE 表名:
削除するデータを指定できず、表の全てのデータを削除する。 |
DDL文のため自動コミットが実行され、処理を取消できない。 |
DELETE文よりも処理が高速である。 |
ロールバックできない。 |
表が使用していた領域が開放される。 |
DELETE (FROM) 表名;
fromは省略できます。
表のデータを削除するが、表の構造は削除しない。 |
削除する行の条件を指定できる。 |
Delete (FROM) prod – のようにfromを省略できる。 |
表名の代わりに指定した副問合せのselect句に指定した列のみ削除できる。 |
ロールバックできる。 |
削除トリガーが実行される。 |
DROP TABLE 表名(PURGE);
表を完全に削除する時には語尾にPURGEをつけます。
Drop table (表名); で書きtableは省略できない。 |
表内のオブジェクトを完全に削除する。 |
完全に削除するのでロールバックできない。 |
表構造も残らない。 |
制約や索引も削除される。 |
表を参照するビューやシノニムは削除されない(残るが無効化された状態)。 |
表はゴミ箱に移動される。 |
表を完全に削除するにはpurgeをつける。 |
最後に
いかがでしたでしょうか。
以上が、「【oracleSQL】TRUNCATE・DELETE・DROPの違いまとめ」の紹介記事になります。
スクールを利用して本格的に学ぶ
いかがでしたでしょうか?
10人中9人が挫折すると言われるプログラミングを、ヒロヤンも実はプログラミングスクールで学習をしてきたからで、結果、今はPythonエンジニアとして働いています。
挫折率が高いプログラミングこそお金を払ってメンターを付けて、道を見失わないように環境を構築する必要があるのではないでしょうか。
これはダイエットで自分一人では痩せられないけど、トレーナーを付けて否が応でもせざるを得ない環境を作ると一緒ですね。
ヒロヤンもプログラミング勉強開始直後はあれこれ悩みましたが、悩むよりも手っ取り早くスクールに登録した方が最短ルートで勉強できるのではないかと考え、結果挫折せずに今に至っています。
今なら無料でキャリアカウンセリングを行っているTechAcademyのようなプログラミングスクールもありますのでこれを機会に是非カウンセリングだけでも受けてみてはいかがでしょうか?
上記リンク先から無料相談ができます。
またこちら(↓)ではPython専用のプログラミングスクールをまとめ紹介しています。
コメントを残す