sql語句中刪除表數據drop、truncate和delete的用法_MySQL教程
推薦:安裝sql server 2008 報錯等問題怎么解決問題1:安裝sql server 2008 R2,安裝過程中提示錯誤:此計算機上安裝了 Microsoft Visual Studio 2008 的早期版本。請在安裝 SQL Server 2008 前將 Microsoft Visual Studio 2008 升級到 SP1。 之前我的電腦上確實裝了vs2008,于是我準備去下載一個SP1補丁包,一看800
雖然綠色資源網小編不建議大家去用命令刪除數據庫表中的東西,但是這些刪除命令總有用的著的地方。
說到刪除表數據的關鍵字,大家記得最多的可能就是delete了
然而我們做數據庫開發,讀取數據庫數據.對另外的兩兄弟用得就比較少了
現在來介紹另外兩個兄弟,都是刪除表數據的,其實也是很容易理解的
老大------drop
出沒場合:drop table tb --tb表示數據表的名字,下同
絕招:刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以后要新增數據是不可能的,除非新增一個表,
例如:一個班就是一個表,學生就是表中的數據,學生的職務就是定義
drop table class,就是把整個班移除.學生和職務都消失
比如下面TestSchool數據庫中有兩張表[Classes]表和[Teacher]表

當執行下面代碼之后

Classes表就被清楚,一干二凈! 刪除得非常暴力,作為老大實至名歸

老二-----truncate
出沒場合:truncate table tb
絕招:刪除內容、釋放空間但不刪除定義。與drop不同的是,他只是清空表數據而已,他比較溫柔.
同樣也是一個班,他只去除所有的學生.班還在,職務還在,如果有新增的學生可以進去,也可以分配上職務
刪除內容很容易理解,不刪除定義也很容易理解,就是保留表的數據結構

上圖就表現了:刪除內容

執行語句之后,發現數據表的結構還在,也就是不刪除定義
至于釋放空間,看下下面兩幅圖.你們就會明白的

右圖:Id列標識列,因之前delete過行數據,所以會出現標識列不連續(體現了delete刪除是不釋放空間的)
經過truncate table Teacher 之后 再新增三條數據

右圖:同樣Id是標識列,發現插入數據的時候,標識列連續了(體現了truncate刪除是釋放空間)
注意:truncate 不能刪除行數據,要刪就要把表清空
老三-----delete
出沒場合:delete table tb --雖然也是刪除整個表的數據,但是過程是痛苦的(系統一行一行地刪,效率較truncate低)
或
delete table tb where 條件
絕招:刪除內容不刪除定義,不釋放空間。三兄弟之中最容易欺負的一個
然后關于delete的就不詳細說明了,大家都懂的
關于truncate的小小總結:
truncate table 在功能上與不帶 WHERE 子句的 delete語句相同:二者均刪除表中的全部行。
但 truncate 比 delete速度快,且使用的系統和事務日志資源少。
delete 語句每次刪除一行,并在事務日志中為所刪除的每行記錄一項。所以可以對delete操作進行roll back
1、truncate 在各種表上無論是大的還是小的都非常快。如果有ROLLBACK命令Delete將被撤銷,而 truncate 則不會被撤銷。
2、truncate 是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對 truncate 使用ROLLBACK命令。
3、truncate 將重新設置高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經過 truncate 操作后的表比Delete操作后的表要快得多。
4、truncate 不能觸發任何Delete觸發器。
5、當表被清空后表和表的索引講重新設置成初始大小,而delete則不能。
6、不能清空父表
分享:Mysql教程之Windows 7/8下連接本地MySQL慢怎么辦最近本地調試網站的時候個別程序如phpcms一直出現這個問題,速度異常慢,偶爾發現下面的文章,才提醒了我,原來問題這樣的。。。 最近在windows上開發應用的時候發現一個有趣的問題:我的本地程序連接本地mysql庫居然要延遲1秒鐘左右才能打開。 問題分析 考慮到可能是
- 安裝sql server 2008 報錯等問題怎么解決
- Mysql教程之Windows 7/8下連接本地MySQL慢怎么辦
- MSSQL清空日志刪除日志文件
- 關于數據庫中保留小數位的問題
- 解析mysql與Oracle update的區別
- mysql 導入導出數據庫以及函數、存儲過程的介紹
- MySQL——修改root密碼的4種方法(以windows為例)
- 解決MYSQL出現Can''t create/write to file ''#sql_5c0_0.MYD''的問題
- 深入理解SQL的四種連接-左外連接、右外連接、內連接、全連接
- 解析:內聯,左外聯,右外聯,全連接,交叉連接的區別
- mysql出現“Incorrect key file for table”處理方法
- mysql重裝后出現亂碼設置為utf8可解決
- 相關鏈接:
- 教程說明:
MySQL教程-sql語句中刪除表數據drop、truncate和delete的用法
。