1.快速清空表中的數(shù)據(jù)(20.05.25)
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、木蘭網(wǎng)站維護(hù)、網(wǎng)站推廣。
區(qū)別:
a.不帶where參數(shù)的delete語(yǔ)句可以刪除mysql表中所有內(nèi)容,使用truncate table也可以清空mysql表中所有內(nèi)容。
b.效率上truncate比delete快,但truncate刪除后不記錄mysql日志,不可以恢復(fù)數(shù)據(jù)。
c.delete的效果有點(diǎn)像將mysql表中所有記錄一條一條刪除到刪完,而truncate相當(dāng)于保留mysql表的結(jié)構(gòu),重新創(chuàng)建了這個(gè)表,所有的狀態(tài)都相當(dāng)于新表。
DROP TABLE table_name (刪除表);delete from 表名 where 刪除條件(刪除表內(nèi)數(shù)據(jù),用?delete);truncate table 表名(清除表內(nèi)數(shù)據(jù),保存表結(jié)構(gòu),用?truncate)。
擴(kuò)展資料:
1、MySQL中刪除數(shù)據(jù)表是非常容易操作的, 但是你再進(jìn)行刪除表操作時(shí)要非常小心,因?yàn)閳?zhí)行刪除命令后所有數(shù)據(jù)都會(huì)消失。
2、命令提示窗口中刪除數(shù)據(jù)表:SQL語(yǔ)句為?DROP TABLE 。
3、使用PHP腳本刪除數(shù)據(jù)表:PHP使用 mysqli_query 函數(shù)來(lái)刪除 MySQL 數(shù)據(jù)表。該函數(shù)有兩個(gè)參數(shù),在執(zhí)行成功時(shí)返回 TRUE,否則返回 FALSE。語(yǔ)法mysqli_query(connection,query,resultmode)。
4、當(dāng)你不再需要該表時(shí), 用?drop;當(dāng)你仍要保留該表,但要?jiǎng)h除所有記錄時(shí), 用?truncate;當(dāng)你要?jiǎng)h除部分記錄時(shí), 用?delete。
5、drop table table_name?: 刪除表全部數(shù)據(jù)和表結(jié)構(gòu),立刻釋放磁盤空間,不管是 Innodb 和 MyISAM。實(shí)例,刪除學(xué)生表:drop table student。
6、truncate table table_name?: 刪除表全部數(shù)據(jù),保留表結(jié)構(gòu),立刻釋放磁盤空間 ,不管是 Innodb 和 MyISAM。實(shí)例,刪除學(xué)生表:truncate table student。
7、delete from table_name?: 刪除表全部數(shù)據(jù),表結(jié)構(gòu)不變,對(duì)于 MyISAM 會(huì)立刻釋放磁盤空間,InnoDB 不會(huì)釋放磁盤空間。實(shí)例,刪除學(xué)生表:delete from student。
8、delete from table_name where xxx?: 帶條件的刪除,表結(jié)構(gòu)不變,不管是 innodb 還是 MyISAM 都不會(huì)釋放磁盤空間。實(shí)例,刪除學(xué)生表中姓名為 "張三" 的數(shù)據(jù):delete from student where T_name = "張三"。
9、delete 操作以后,使用?optimize table table_name?會(huì)立刻釋放磁盤空間,不管是 innodb 還是 myisam。實(shí)例,刪除學(xué)生表中姓名為 "張三" 的數(shù)據(jù):delete from student where T_name = "張三"。
10、delete from?表以后雖然未釋放磁盤空間,但是下次插入數(shù)據(jù)的時(shí)候,仍然可以使用這部分空間。
使用truncate語(yǔ)句就可以刪除表中所有數(shù)據(jù)。
truncate 語(yǔ)句的簡(jiǎn)單說(shuō)明:
一般情況下,刪除數(shù)據(jù)大家都在使用delete語(yǔ)句;
這個(gè) truncate 命令很簡(jiǎn)單,它的意思是:刪除表的所有記錄;
相當(dāng)于 delete 語(yǔ)句不寫 where 子句一樣;
其語(yǔ)法結(jié)構(gòu)為:TRUNCATE [TABLE] tbl_name;
這里簡(jiǎn)單的給出個(gè)示例,我想刪除 friends 表中所有的記錄,可以使用如下語(yǔ)句:truncate table friends;
如果想要?jiǎng)h除表的所有數(shù)據(jù),truncate語(yǔ)句要比 delete 語(yǔ)句快。因?yàn)?truncate 刪除了表,然后根據(jù)表結(jié)構(gòu)重新建立它,而 delete 刪除的是記錄,并沒(méi)有嘗試去修改表;
不過(guò)truncate命令快規(guī)快,卻不像delete命令那樣對(duì)事務(wù)處理是安全的。因此,如果我們想要執(zhí)行truncate刪除的表正在進(jìn)行事務(wù)處理,這個(gè)命令就會(huì)產(chǎn)生退出并產(chǎn)生錯(cuò)誤信息。
刪除表數(shù)據(jù)有兩種方法:delete和truncate。具體語(yǔ)句如下:
一、RUNCATE TABLE name? :
刪除表中的所有行,而不記錄單個(gè)行刪除操作。?在這個(gè)指令之下,表格中的資料會(huì)完全消失,可是表格本身會(huì)繼續(xù)存在。
TRUNCATE TABLE 的語(yǔ)法:TRUNCATE TABLE name ,參數(shù) name 是要截?cái)嗟谋淼拿Q或要?jiǎng)h除其全部行的表的名稱。
二、Delete from tablename where 1=1
1、delete語(yǔ)法:
DELETE FROM 表名稱 WHERE 列名稱 = 值。
2、刪除所有行:
可以在不刪除表的情況下刪除所有的行。這意味著表的結(jié)構(gòu)、屬性和索引都是完整的:DELETE FROM table_name。