這篇文章給大家分享的是有關(guān)sql中delete和truncate之間有什么區(qū)別的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì),集網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營(yíng)銷(xiāo)、軟文發(fā)布平臺(tái)等專(zhuān)業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計(jì),讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專(zhuān)業(yè)設(shè)計(jì)制作為您帶來(lái)效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。在SQL中delete命令和truncate命令都可用于刪除數(shù)據(jù)(記錄),那么它們之間有什么不同之處?
delete和truncate命令之間的差別
1、命令類(lèi)型
delete是數(shù)據(jù)操作語(yǔ)言(DML)命令;而truncate是數(shù)據(jù)定義語(yǔ)言(DDL)命令。
2、功能
delete命令根據(jù)指定的SQL語(yǔ)句從表中刪除單個(gè),多個(gè)或所有記錄;而truncate命令從數(shù)據(jù)庫(kù)中刪除所有記錄和表結(jié)構(gòu)。
3、Where子句
delete命令支持WHERE子句,可以使用帶有DELETE的where子句來(lái)過(guò)濾和刪除特定記錄;而,truncate命令不支持WHERE子句。
4、鎖定
delete命令采用行級(jí)鎖定,表中的每一行都被鎖定以進(jìn)行刪除;truncate命令采用表級(jí)鎖定,鎖定了整個(gè)表以刪除所有記錄。
5、索引視圖
delete命令可以與索引視圖一起使用;而,truncate命令不能與索引視圖一起使用。
6、執(zhí)行速度
由于delete命令維護(hù)日志,因此速度很慢。但是,由于truncate命令在事務(wù)日志中維護(hù)最少的日志記錄,因此執(zhí)行速度更快。
7、表結(jié)構(gòu)
delete命令不會(huì)影響表結(jié)構(gòu),而truncate命令會(huì)從數(shù)據(jù)庫(kù)中刪除表結(jié)構(gòu)。
8、事務(wù)空間
delete命令比truncate命令使用更多的事務(wù)空間。
感謝各位的閱讀!關(guān)于“sql中delete和truncate之間有什么區(qū)別”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!