首頁 > 資料庫 > mysql教程 > SQL指令delete和truncate有什麼差別?

SQL指令delete和truncate有什麼差別?

青灯夜游
發布: 2019-02-20 10:47:06
原創
4292 人瀏覽過

在SQL中delete和truncate指令都可用來刪除資料(記錄),那麼它們之間有什麼不同?下面這篇文章就來跟大家介紹delete和truncate指令之間的差別,希望對大家有幫助。

SQL指令delete和truncate有什麼差別?

什麼是delete指令?

delete指令有助於從資料庫中的表中刪除記錄。 【影片教學推薦:MySQL教學

範例:以下是一張student表,包含3個欄位:student_id、name、marks

SQL指令delete和truncate有什麼差別?

可以使用SQL的delete指令來刪除student表中的所以記錄:

delete from student;
登入後複製

也可以刪除student表中的特定記錄:

delete from student where student_id =2;
登入後複製

上面的SQL指令將刪除student_id為2的記錄。執行該語句後,表格中將只包含兩筆記錄:student_id為1和3的記錄。

什麼是truncate指令?

truncate指令有助於從表中刪除所有記錄。它也從資料庫中刪除表結構。因此,在特定表上執行truncate指令時,它也會初始化主鍵。

以下SQL指令將刪除student表中的所有記錄。此外,它會從資料庫中刪除表結構。

truncate table student;
登入後複製

delete和truncate指令之間的差異是什麼?

1、指令類型

delete是資料操作語言(DML)指令;而truncate是資料定義語言(DDL)指令。

2、功能

delete指令根據指定的SQL語句從表中刪除單個,多個或所有記錄;而truncate指令從資料庫中刪除所有記錄和表結構。

3、Where子句

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

4、鎖定

delete指令採用行級鎖定,表中的每一行都被鎖定以進行刪除;truncate指令採用表級鎖定,鎖定了整個表以刪除所有記錄。

5、索引視圖

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

6、執行速度

由於delete指令維護日誌,因此速度很慢。但是,由於truncate指令在交易日誌中維護最少的日誌記錄,因此執行速度更快。

7、表格結構

delete指令不會影響表格結構,而truncate指令會從資料庫中刪除表格結構。

8、交易空間

delete指令比truncate指令使用更多的交易空間。

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是SQL指令delete和truncate有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板