delete、drop、truncat的用法區別

delete、drop、truncat的用法區別

先清楚幾個概念:DDL、DML和DCL

DDL:數據定義語言(Data Definition Language),對所有對象(例如database,table)進行定義和管理

例如:create\alter\drop\truncate\create\drop

DML:數據操作語言(Data Manipulation Language),對數據庫裏的數據進行操作

例如:insert\update\delete\select

DCL:數據控制語言(Data Control Language),授予或回收訪問數據庫的特權,控制數據庫操作事務的時間效果等

例如:commit\savepoint\rollback

  • delete

    delete是DML,只刪除數據,不影響表結構,操作會放到rollback segement中,可以回滾,會觸發tigger。執行速度最慢,安全性最高。

  • drop

    drop是DDL,會刪除表結構,操作立刻生效,數據不會放到rollback segement中,不可以回滾。

  • truncat

    truncat是DDL,刪除整個表的數據並釋放空間,數據不會放到rollback segement中,不可以回滾、

    truncat需要drop的權限,流程相當於drop table然後create table,不記錄日誌,無法恢復,速度比delete快

執行速度:drop>truncate>delete

自己的一點理解與整理,哪裏有問題歡迎提出,謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章