刪除(delete)和截斷(truncate)的區別

SQL(結構查詢語言)命令Delete和Truncate都用於刪除資料庫中表中儲存的資料。Delete是一個DML(資料操作語言)語句,它刪除表中的部分或所有行。“Where子句”用於指定需要刪除的行,如果Where子句未與Delete語句一起使用,它將刪除表中的所有資料。Truncate是一個DDL(資料定義語言)語句,它從表中刪除整個資料。這兩個命令都不會破壞表結構和對錶的引用,只會根據需要刪...

刪除vs截斷

SQL(結構查詢語言)命令Delete和Truncate都用於刪除數據庫中表中存儲的數據。Delete是一個DML(數據操作語言)語句,它刪除表中的部分或所有行。“Where子句”用於指定需要刪除的行,如果Where子句未與Delete語句一起使用,它將刪除表中的所有數據。Truncate是一個DDL(數據定義語言)語句,它從表中刪除整個數據。這兩個命令都不會破壞表結構和對錶的引用,只會根據需要刪除數據。

刪除語句

Delete語句允許用戶根據指定的條件從數據庫中的現有表中刪除數據,而“Where子句”用於確定此條件。Delete命令被稱為日誌執行,因為它一次只刪除一行,並在事務日誌中為每一行刪除保留一個條目。所以,這會導致操作變慢。Delete是一個DML語句,因此在執行命令時不會自動提交它。因此,如果需要,可以回滾刪除操作以再次訪問數據。在執行Delete命令之後,應該提交或回滾它,以便永久保存更改。Delete語句不會從數據庫中刪除表的表結構。它也不會釋放表使用的內存空間。

Delete命令的典型語法如下所述。

從<表格名稱中刪除>

從<table_name>WHERE<condition>中刪除;

截斷語句

Truncate語句刪除數據庫中現有表中的所有數據,但它保留相同的表結構、完整性約束、訪問權限和與其他表的關係。因此,如果用戶希望再次重用表,則不需要重新定義表,並且可以使用舊的表結構。Truncate通過取消分配用於保存數據的數據頁來刪除整個數據,而事務日誌中只保留這些頁釋放。因此,truncate命令只使用較少的系統和事務日誌資源進行操作,因此它比其他相關命令更快。Truncate是一個DDL命令,因此它在語句執行前後使用自動提交。因此,truncate不能以任何方式再次回滾數據。它在執行之後釋放表使用的內存空間。但是Truncate語句不能應用於由外鍵約束引用的表。

下面是Truncate語句的常用語法。

截斷表格<表格名稱>

Delete和Truncate有什麼區別?1Delete和Truncate命令從數據庫中現有的表中刪除數據,而不會損害表結構或對錶的其他引用。但是,Delete命令只能用於刪除使用相關條件的表中的特定行,也可以用於不帶任何條件地刪除所有行,而Truncate命令只能用於刪除表中的整個數據。Delete是一個DML命令,它可以根據需要回滾操作,但是Truncate是一個DDL命令,因此它是一個自動提交語句,不能以任何方式回滾。因此,在數據庫管理中謹慎使用該命令是非常重要的。Truncate操作比Delete操作消耗更少的系統資源和事務日誌資源,因此Truncate被認為比Delete更快。另外,Delete不會釋放表所使用的空間,而Truncate則釋放執行後使用的空間,因此從數據庫表中刪除整個數據時,Delete的效率不高。但是,當表被外鍵約束引用時,不允許使用Truncate,在這種情況下,可以使用Delete命令代替Truncate.7。最後,這兩個命令在數據庫管理系統中的應用既有優點也有缺點,用戶應該意識到適當地使用這些命令以獲得良好的效果。
  • 發表於 2020-11-02 19:25
  • 閱讀 ( 10 )
  • 分類:科技

你可能感興趣的文章

記憶體快取(memcached)和雷迪斯(redis)的區別

...“get”命令用於獲取儲存在金鑰中的值。“delete”可用於刪除現有金鑰。 什麼是雷迪斯(redis)? 它是一個開源的記憶體資料結構儲存,用作資料庫、快取和訊息代理。Redis代表遠端字典伺服器。它以鍵值格式儲存資料。為了與資...

  • 發佈於 2020-10-19 23:25
  • 閲讀 ( 47 )

哪裡(where)和sql中的having子句(having clause in sql)的區別

...use in sql)? 它有助於根據給定的條件從表中檢索、更新或刪除一組特定的資料。程式設計師可以使用where子句來限制和獲取所需的資料。查詢只對where子句指定的條件為true的記錄執行。它可以與select、update和delete一起使用。   參...

  • 發佈於 2020-10-24 02:15
  • 閲讀 ( 49 )

ddl公司(ddl)和dml公司(dml)的區別

...言。這種語言用於改變資料庫的結構。Create、Alter、Drop、Truncate是一些DDL命令。 圖01:SQL ddl命令示例 請參閱以下用TSQL(MSSQL server)編寫的DDL示例; 下面的語句將建立一個名為“employee”的資料庫。 建立資料庫員工; 下面的語句...

  • 發佈於 2020-10-24 04:48
  • 閲讀 ( 49 )

替代插入(substitution insertion)和缺失突變(deletion mutations)的區別

...和缺失突變的相似性 6. 並排比較-表格形式的替換、**和刪除突變 7. 摘要 什麼是替代突變(substitution mutati***)? 替換突變是指改變不同鹼基對核苷酸序列鹼基對的突變。例如,在替換突變中,一個鹼基對可以被替換成另一個鹼基...

  • 發佈於 2021-03-04 15:18
  • 閲讀 ( 42 )

刪除(deletion)和染色體複製(duplication of chromosome)的區別

...染色體複製 4. 染色體缺失與重複的相似性 5. 並排比較-刪除與重複染色體的表格形式 6. 摘要 什麼是染色體缺失(deletion of chromosome)? 染色體缺失是一種染色體重排。這只是染色體臂的一部分缺失。染色體可以從兩個不同的位置...

  • 發佈於 2021-03-04 18:47
  • 閲讀 ( 49 )

如何在本地和遠端刪除git中的分支

...處理長期分支和臨時分支。因此,在開發過程中經常需要刪除分支。有時需要從遠端伺服器以及本地分支中刪除共享分支。 ...

  • 發佈於 2021-03-28 02:05
  • 閲讀 ( 62 )

如何刪除apple watch訓練

...在Apple Watch上意外錄製過一次訓練,或最終得到一個想要刪除的副本?好吧,奇怪的是,你不能從手錶上刪除鍛鍊;你需要用你的iPhone來做。下面是方法。 如何從活動應用程式中刪除訓練 開啟“活動”應用程式,進入“訓練”...

  • 發佈於 2021-04-01 18:30
  • 閲讀 ( 82 )

如何在excel中使用trunc函式

Excel中有多種方法可以刪除小數點和縮短數值。在本文中,我們將解釋如何使用TRUNC函式以及它與其他技術的區別。 什麼是trunc函式(the trunc function)? TRUNC函式將數字截斷為指定的小數位數。使TRUNC不同於其他去掉小數點的函式...

  • 發佈於 2021-04-02 13:06
  • 閲讀 ( 49 )

如何在linux上安全地刪除檔案

...因與撕碎舊紙質文件的原因相同。我們將告訴您有關安全刪除Linux檔案的需要了解的內容。本教程介紹了shred命令和secure delete實用程式套件。 刪除的檔案通常是可恢復的 刪除一個檔案實際上並不會將其從硬碟中刪除。這完全取...

  • 發佈於 2021-04-03 10:54
  • 閲讀 ( 49 )

如何在excel中繪製線性校準曲線

...校準曲線,顯示校準曲線的公式,然後使用Excel中的斜率和截距函式建立簡單的公式來使用校準方程。 什麼是校準曲線和方法(a calibration curve and how)? 為了進行校準,需要將裝置的讀數(如溫度計顯示的溫度)與已知的標準值(...

  • 發佈於 2021-04-03 18:57
  • 閲讀 ( 55 )
zsvs86134
zsvs86134

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦