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開(kāi)始記錄,而不是接著原來(lái)的ID數(shù)。
- truncate刪除數(shù)據(jù)后不寫(xiě)服務(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ì)后悔的話(huà), 用 delete。
補(bǔ)充:MySQL刪除表操作delete、truncate、drop的區(qū)別
1.表和索引所占空間:
當(dāng)表被TRUNCATE 后,這個(gè)表和索引所占用的空間會(huì)恢復(fù)到初始大小;
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ù)開(kāi)始增加,即種子不變;使用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如何從數(shù)據(jù)庫(kù)中刪除表中所有數(shù)據(jù)
這篇文章主要介紹了MySQL如何從數(shù)據(jù)庫(kù)中刪除表中所有數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
MySQL8下忘記密碼后重置密碼的辦法(MySQL老方法不靈了)
這篇文章主要介紹了MySQL8下忘記密碼后重置密碼的辦法,MySQL的密碼是存放在user表里面的,修改密碼其實(shí)就是修改表中記錄,重置的思路是是想辦法不用密碼進(jìn)入系統(tǒng),然后用數(shù)據(jù)庫(kù)命令修改表user中的密碼記錄2018-08-08
MySQL錯(cuò)誤TIMESTAMP column with CURRENT_TIMESTAMP的解決方法
這篇文章主要介紹了MySQL錯(cuò)誤TIMESTAMP column with CURRENT_TIMESTAMP的解決方法,需要的朋友可以參考下2014-06-06

