MySQL刪除表數(shù)據(jù)與MySQL清空表命令的3種方法淺析
一、MySQL清空表數(shù)據(jù)命令:truncate
SQL語(yǔ)法:
truncate table 表名
注意:
- 不能與where一起使用。
- truncate刪除數(shù)據(jù)后是不可以rollback的。
- truncate刪除數(shù)據(jù)后會(huì)重置Identity(標(biāo)識(shí)列、自增字段),相當(dāng)于自增列會(huì)被置為初始值,又重新從1開始記錄,而不是接著原來(lái)的ID數(shù)。
- truncate刪除數(shù)據(jù)后不寫服務(wù)器log,整體刪除速度快。
- truncate刪除數(shù)據(jù)后不激活trigger(觸發(fā)器)。
二、MySQL刪除表命令:drop
SQL語(yǔ)法:
drop table 表名;
或者是
drop table if exists 表名;
注意:
truncate只會(huì)清除表數(shù)據(jù),drop不光清除表數(shù)據(jù)還要?jiǎng)h除表結(jié)構(gòu)。
三、MySQL清空數(shù)據(jù)表內(nèi)容的語(yǔ)法:delete
SQL命令:
delete from 表名 where id='1';
或
delete from 表名;
注意:
delete含義:你要?jiǎng)h除哪張表的數(shù)據(jù) ?你要?jiǎng)h掉哪些行 ?delete可以刪除一行,也可以刪除多行;如果不加where條件,則是刪除表所有的數(shù)據(jù),這是很危險(xiǎn)的!不建議這樣做!
總結(jié):
1、當(dāng)你不再需要該表時(shí), 用 drop;
2、當(dāng)你仍要保留該表,但要?jiǎng)h除所有數(shù)據(jù)表記錄時(shí), 用 truncate;
3、當(dāng)你要?jiǎng)h除部分記錄或者有可能會(huì)后悔的話, 用 delete。
補(bǔ)充:MySQL刪除表操作delete、truncate、drop的區(qū)別
1.表和索引所占空間:
當(dāng)表被TRUNCATE 后,這個(gè)表和索引所占用的空間會(huì)恢復(fù)到初始大?。?/p>
DELETE操作不會(huì)減少表或索引所占用的空間;
DROP語(yǔ)句將表所占用的空間全釋放掉。
2.應(yīng)用范圍:
TRUNCATE 只能對(duì)table;
DELETE可以是table和view。
3.執(zhí)行速度:
drop > truncate > delete
4.delete from刪空表后,會(huì)保留一個(gè)空的頁(yè),truncate在表中不會(huì)留有任何頁(yè)。
5.DELETE語(yǔ)句執(zhí)行刪除的過(guò)程是每次從表中刪除一行,并且同時(shí)將該行的刪除操作作為事務(wù)記錄在日志中保存以便進(jìn)行進(jìn)行回滾操作。
TRUNCATE TABLE 則一次性地從表中刪除所有的數(shù)據(jù)并不把單獨(dú)的刪除操作記錄記入日志保存,刪除行是不能恢復(fù)的。并且在刪除的過(guò)程中不會(huì)激活與表有關(guān)的刪除觸發(fā)器。執(zhí)行速度快。
6.當(dāng)使用行鎖執(zhí)行 DELETE 語(yǔ)句時(shí),將鎖定表中各行以便刪除。truncate始終鎖定表和頁(yè),而不是鎖定各行。
7.如果有identity產(chǎn)生的自增id列,delete from后仍然從上次的數(shù)開始增加,即種子不變;使用truncate刪除之后,種子會(huì)恢復(fù)到初始值。
總結(jié)
到此這篇關(guān)于MySQL刪除表數(shù)據(jù)與MySQL清空表命令的文章就介紹到這了,更多相關(guān)MySQL刪除表數(shù)據(jù) 清空表命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中觸發(fā)器入門簡(jiǎn)單實(shí)例與介紹
本文章來(lái)mysql初學(xué)者介紹在mysql怎么創(chuàng)建觸發(fā)器及觸發(fā)器在mysql執(zhí)行順序,下面我來(lái)給大家詳細(xì)介紹2013-08-08lnmp重置mysql數(shù)據(jù)庫(kù)root密碼的兩種方法
這篇文章給大家介紹了lnmp重置mysql數(shù)據(jù)庫(kù)root密碼的兩種方法,第一種方法通過(guò)腳本重置密碼,第二種方法通過(guò)命令修改,具體操作方法大家參考下本文2017-07-07mysql密碼過(guò)期導(dǎo)致連接不上mysql
mysql密碼過(guò)期了,今天遇到了連接mysql,總是連接不上去,下面有兩種錯(cuò)誤現(xiàn)象,有類似問題的朋友可以參考看看,或許對(duì)你有所幫助2013-05-05MyEclipse通過(guò)JDBC連接MySQL數(shù)據(jù)庫(kù)基本介紹
MyEclipse使用Java 通過(guò)JDBC連接MySQL數(shù)據(jù)庫(kù)的基本測(cè)試前提是MyEclipse已經(jīng)能正常開發(fā)Java工程2012-11-11記錄無(wú)法安裝mysql-Invalid GPG Key from file:/etc/pki/rpm-gpg/RPM-G
在aliyun上安裝MySQL時(shí)由于上次錯(cuò)誤卸載mysql 導(dǎo)致校驗(yàn)文件出問題。下面小編給大家分享記錄無(wú)法安裝mysql-Invalid GPG Key from file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql的解決方法,需要的朋友參考下吧2017-01-01MySQL使用集合函數(shù)進(jìn)行查詢操作實(shí)例詳解
這篇文章主要介紹了MySQL使用集合函數(shù)進(jìn)行查詢操作,結(jié)合實(shí)例形式詳細(xì)分析了MySQL使用集合函數(shù)進(jìn)行的運(yùn)算與查詢操作使用技巧,需要的朋友可以參考下2018-06-06