溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

sql中delete和truncate之間有什么區(qū)別

發(fā)布時間:2021-01-15 09:52:13 來源:億速云 閱讀:168 作者:小新 欄目:數(shù)據(jù)庫

這篇文章給大家分享的是有關(guān)sql中delete和truncate之間有什么區(qū)別的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在SQL中delete命令和truncate命令都可用于刪除數(shù)據(jù)(記錄),那么它們之間有什么不同之處?

delete和truncate命令之間的差別

1、命令類型

delete是數(shù)據(jù)操作語言(DML)命令;而truncate是數(shù)據(jù)定義語言(DDL)命令。

2、功能

delete命令根據(jù)指定的SQL語句從表中刪除單個,多個或所有記錄;而truncate命令從數(shù)據(jù)庫中刪除所有記錄和表結(jié)構(gòu)。

3、Where子句

delete命令支持WHERE子句,可以使用帶有DELETE的where子句來過濾和刪除特定記錄;而,truncate命令不支持WHERE子句。

4、鎖定

delete命令采用行級鎖定,表中的每一行都被鎖定以進(jìn)行刪除;truncate命令采用表級鎖定,鎖定了整個表以刪除所有記錄。

5、索引視圖

delete命令可以與索引視圖一起使用;而,truncate命令不能與索引視圖一起使用。

6、執(zhí)行速度

由于delete命令維護(hù)日志,因此速度很慢。但是,由于truncate命令在事務(wù)日志中維護(hù)最少的日志記錄,因此執(zhí)行速度更快。

7、表結(jié)構(gòu)

delete命令不會影響表結(jié)構(gòu),而truncate命令會從數(shù)據(jù)庫中刪除表結(jié)構(gòu)。

8、事務(wù)空間

delete命令比truncate命令使用更多的事務(wù)空間。

感謝各位的閱讀!關(guān)于“sql中delete和truncate之間有什么區(qū)別”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI