亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

SQL 清空表(TRUNCATE TABLE 語句)

在本教程中,您將學(xué)習(xí)如何使用SQL快速刪除表中的所有行。

刪除表數(shù)據(jù)

TRUNCATE TABLE語句比DELET刪除表中的所有行更快。從邏輯上講,TRUNCATE TABLE它類似于DELETE沒有WHERE子句的語句。

TRUNCATE TABLE語句從表中刪除所有行,但表結(jié)構(gòu)及其列,約束,索引等保持不變。要刪除表及其數(shù)據(jù),可以使用該DROP TABLE語句,但是需謹(jǐn)慎操作。

語法

TRUNCATE TABLE的基本語法:

TRUNCATE TABLE table_name;

讓我們對數(shù)據(jù)庫表執(zhí)行清空操作。

考慮我們在數(shù)據(jù)庫中有一個employee表,其中包含以下記錄:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

以下命令從employees表中刪除所有行:

TRUNCATE TABLE employees;

現(xiàn)在,在執(zhí)行上述SQL語句之后,如果嘗試從employee表中選擇記錄,則將獲得一個空結(jié)果集。

TRUNCATE TABLE vs DELETE

盡管DELETE和TRUNCATE TABLE似乎具有相同的效果,但是它們的工作方式不同。這是這兩個語句之間的一些主要區(qū)別:

  • TRUNCATE TABLE語句刪除并重新創(chuàng)建表,并使任何自動增量值都重置為其初始值(通常為1)。

  • DELETE可讓您根據(jù)可選WHERE子句過濾要刪除的行,TRUNCATE TABLE而不支持WHERE子句則僅刪除所有行。

  • TRUNCATE TABLE與DELETE相比,它更快并且使用的系統(tǒng)資源更少,因為DELETE掃描表以生成受影響的行數(shù),然后逐行刪除行,并為每個刪除的行在數(shù)據(jù)庫日志中記錄一個條目,而TRUNCATE TABLE只刪除所有行而不提供任何其他信息。

提示:如果你只是想刪除所有的行,并重新創(chuàng)建整個表,使用TRUNCATE TABLE。如果你想刪除基于特定條件的行的數(shù)量有限,或者您不想要重置自動遞增值,則使用DELETE。