滴(drop)和截斷(truncate)的區別

Drop和Truncate是資料庫管理系統中使用的兩個SQL(結構化查詢語言)語句,我們希望從資料庫中刪除資料記錄。Drop和Truncate語句都會刪除表中的整個資料和相關的SQL語句。在這種情況下,Delete操作無效,因為它比Drop和Truncate佔用更多的儲存空間。...

刪除vs截斷

Drop和Truncate是數據庫管理系統中使用的兩個SQL(結構化查詢語言)語句,我們希望從數據庫中刪除數據記錄。Drop和Truncate語句都會刪除表中的整個數據和相關的SQL語句。在這種情況下,Delete操作無效,因為它比Drop和Truncate佔用更多的存儲空間。

如果我們想放棄數據庫中的一個表及其所有數據,SQL允許我們使用Drop語句輕鬆地執行此操作。Drop命令是一個DDL(數據定義語言)命令,可用於銷燬現有的數據庫、表、索引或視圖。它從數據庫中刪除表中的全部信息以及表結構。另外,我們可能希望簡單地刪除表中的所有數據,但是沒有表,在這種情況下,我們可以在SQL中使用Truncate語句。Truncate也是一個DDL命令,它消除了表中的所有行,但保留了相同的表定義以供將來使用。

Drop命令

如前所述,Drop命令刪除表定義及其所有數據、完整性約束、索引、觸發器和訪問特權,這些都是在特定表上創建的。因此,它會從數據庫中完全刪除現有對象,並且在執行命令後,與其他表的關係也將不再有效。它還從數據字典中刪除有關表的所有信息。下面是對錶使用Drop語句的典型語法。

刪除表格<表格名稱>

我們只需替換上面Drop命令示例中要從數據庫中刪除的表名。

必須指出的是,Drop語句不能用於刪除已被外鍵約束引用的表。在這種情況下,必須首先刪除引用外鍵約束或該特定表。此外,Drop語句不能應用於數據庫中的系統表。

由於Drop命令是一個auto commit語句,一旦觸發操作就不能回滾,也不會觸發觸發器。當刪除一個表時,對該表的所有引用都將無效,因此,如果我們想再次使用該表,則必須使用所有完整性約束和訪問權限重新創建該表。所有與其他表的關係,也必須重新定位。

截斷命令

Truncate命令是一個DDL命令,它刪除表中的所有行而不使用任何用戶指定的條件,並釋放表使用的空間,但表結構及其列、索引和約束保持不變。Truncate通過取消分配用於存儲表數據的數據頁來消除表中的數據,並且只有這些頁釋放保留在事務日誌中。因此,與Delete等其他相關SQL命令相比,它使用的事務日誌資源和系統資源更少。所以Truncate語句比其他語句快一點。以下是Truncate命令的典型語法。

截斷表格<表格名稱>

我們應該用上面的語法替換要從中刪除整個數據的表名。

不能對已被外鍵約束引用的表使用Truncate。它在操作之前自動使用一個提交,然後再使用另一個提交,所以事務的回滾是不可能的,並且不會觸發觸發器。如果我們想重用表,我們只需要訪問數據庫中現有的表定義。

Drop和Truncate有什麼區別?

Drop和Truncate命令都是DDL命令,也是自動提交語句,因此無法回滾使用這些命令執行的事務。

Drop和Truncate之間的主要區別是Drop命令不僅刪除表中的所有數據,而且還會從數據庫中永久刪除包含所有引用的表結構,而Truncate命令只刪除表中的所有行,並保留表結構及其引用。

如果刪除一個表,與其他表的關係將不再有效,並且完整性約束和訪問權限也將被刪除。因此,如果需要重用表,則必須使用關係、完整性約束以及訪問權限來重新構建表。但是,如果表被截斷,表結構及其約束將保留以備將來使用,因此,重用時不需要上述任何重新創建。

  • 發表於 2020-11-04 15:26
  • 閱讀 ( 14 )
  • 分類:科技

你可能感興趣的文章

半等價點(half equivalence point)和等效點(equivalence point)的區別

...點。 半等價點(half equivalence point)和等效點(equivalence point)的區別 滴定法是化學中的分析技術,在確定給定樣品的未知濃度時非常重要。半當量點與當量點的關鍵區別在於,半當量點是某一特定滴定法的起始點和當量點之間的中...

  • 發佈於 2020-09-22 11:49
  • 閲讀 ( 70 )

體積(volumetric)和電位滴定(potentiometric titration)的區別

...良好。 容積式(volumetric)和電位滴定法(potentiometric titration)的區別 滴定法是一種化學技術,用於確定已知混合物中未知化合物的含量。容量滴定法和電位滴定法的關鍵區別在於,容量滴定法測量的是與試劑反應的分析物的體積,...

  • 發佈於 2020-09-26 11:58
  • 閲讀 ( 80 )

滴定法(titration)和中和(neutralization)的區別

...鹼的pH值變化而變化。 滴定法(titration)和中和(neutralization)的區別 滴定和中和是化學中非常重要的術語。滴定法是一種需要特定儀器的技術,它是在中和反應的基礎上進行的。滴定和中和的關鍵區別在於滴定是一種分析技術,而...

  • 發佈於 2020-09-30 23:44
  • 閲讀 ( 64 )

莫爾·沃爾哈德(mohr volhard)和法詹斯法(fajans method)的區別

...沉澱。 莫爾·沃爾哈德(mohr volhard)和法詹斯法(fajans method)的區別 Mohr法、Volhard法和Fajans法是測定樣品中鹵化物濃度的重要分析方法。Mohr-Volhard法與Fajans法的關鍵區別在於Mohr法是指在鉻酸鹽指示劑存在下銀離子與鹵化物離子的反應...

  • 發佈於 2020-10-04 02:12
  • 閲讀 ( 66 )

酸鹼滴定法(acid-base titration)和氧化還原滴定(redox titration)的區別

... 酸鹼滴定法(acid-base titration)和氧化還原滴定(redox titration)的區別 反應性質: 酸鹼滴定:酸鹼滴定包括被分析物(未知濃度的溶液)與酸性或鹼性滴定劑之間的中和反應。 氧化還原滴定:氧化還原反應包括分析物和滴定劑之間的...

  • 發佈於 2020-10-06 00:15
  • 閲讀 ( 75 )

標準化(standardization)和滴定法(titration)的區別

...定未知物的濃度。 標準化(standardization)和滴定法(titration)的區別 標準化和滴定是我們在分析化學中使用的重要術語。標準化也是一個滴定過程,但並非所有的滴定都是標準化過程。標準化和滴定的關鍵區別在於標準化過程使用一...

  • 發佈於 2020-10-15 07:31
  • 閲讀 ( 122 )

電位滴定法(potentiometric)和電導滴定法(conductometric titrations)的區別

...位滴定法(potentiometric)和電導滴定法(conductometric titrati***)的區別 電位滴定法和電導滴定法的主要區別在於電位滴定法測量被分析物的電位,而電導滴定法測量分析物的電解電導率。根據電位滴定法和電導滴定法的優點,考慮電位...

  • 發佈於 2020-10-17 06:45
  • 閲讀 ( 81 )

鹼度(alkalinity)和硬度(hardness)的區別

...碳酸鹽的存在而出現鹼度。 鹼度(alkalinity)和硬度(hardness)的區別 鹼度與硬度 鹼度是指水抵抗由酸引起的pH值變化的能力。 硬度是對水中二價離子總量的測量。 致病菌 鹼性主要是由碳酸鹽的存在引起的。 硬度是由...

  • 發佈於 2020-10-20 09:39
  • 閲讀 ( 113 )

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

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

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

滴定法(titration)和反滴定(back titration)的區別

...的硫氰酸鹽的量。 滴定法(titration)和反滴定(back titration)的區別 滴定法是一種用於定量測定樣品中被分析物含量的分析技術。另一方面,反滴定法是滴定技術的一種先進形式,它能使滴定結果更加準確。然而,滴定法和反滴定法...

  • 發佈於 2020-10-25 11:42
  • 閲讀 ( 390 )
zhong0943125
zhong0943125

0 篇文章

作家榜

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

相關推薦