sql语句中删除表 drop、truncate和delete的用法
truncate與delete 使用上區別 ?
truncate 刪除記錄后不可恢復的,不受事務管理,原理:先刪除整個表,重新創建
delete 可以被事務管理 ,在事務中刪除數據可以回滾恢復,原理: 一行一行刪除數據記錄
truncate 刪除所有記錄性能上 好于 delete
?
1.drop table xx --xx是數據表的名字
作用:刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以后要新增數據是不可能的,除非新增一個表。
把表的結構也刪除了 下次要使用的時候要重新創建表的結構再插入數據
2.truncate table xx
作用:刪除內容、釋放空間但不刪除定義。與drop不同的是,他只是清空表數據而已,不刪除表結構。
truncate 釋放空間的體現。truncate table test 后 向test表添加數據,id標識列連續了(體現了truncate刪除是釋放空間)
插入的字段的id重新從1開始遞增 1、2、3.....
3.delete table xx
作用:也是刪除整個表中的數據 表結構不會刪除,但是過程是痛苦的(系統一行一行地刪,效率較truncate低) 或delete table tb where 條件
刪除內容不刪除定義,不釋放空間。
用delete刪除 數據,然后添加。可以看到添加之后id標識不連續。(說明delete刪除不釋放空間)
如果重新插入數據時對應的id在上次基礎之上遞增 4、5、6....
在實際應用中,三者的區別是明確的。
當你不再需要該表時, 用 drop;
當你仍要保留該表,但要刪除所有記錄時, 用 truncate;
當你要刪除部分記錄時(always with a WHERE clause), 用 delete.
4.truncate 與delete 比較:truncate table 在功能上與不帶 WHERE 子句的 delete語句相同:二者均刪除表中的全部行。
truncate 比 delete速度快,且使用的系統和事務日志資源少。
truncate?操作后的表比Delete操作后的表要快得多。
當表被清空后表和表的索引講重新設置成初始大小,而delete則不能。
總結
以上是生活随笔為你收集整理的sql语句中删除表 drop、truncate和delete的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何防止过拟合(overfitting)
- 下一篇: Aspnet Mvc 前后端分离项目手记