DROP 與 TRUNCATE 刪除與清空

SQL 提供了幾種方式來刪除資料表或資料庫。

DROP TABLE 刪除資料表

DROP TABLE 會完全刪除整個資料表,包括結構和所有資料。

DROP TABLE table_name;

範例:

DROP TABLE customers;

避免錯誤

如果資料表不存在會產生錯誤,可以加上 IF EXISTS

DROP TABLE IF EXISTS customers;
DROP TABLE 操作無法復原,請謹慎使用!

TRUNCATE TABLE 清空資料表

TRUNCATE TABLE 會刪除資料表中的所有資料,但保留資料表結構。

TRUNCATE TABLE table_name;

範例:

TRUNCATE TABLE orders;

TRUNCATE 與 DELETE 的差異

特性TRUNCATEDELETE
刪除範圍全部資料可以指定 WHERE 條件
速度較快較慢
重設 AUTO_INCREMENT不會
可以 ROLLBACK通常不行可以
觸發 Trigger不會

如果只是要刪除部分資料,應該使用 DELETE 搭配 WHERE 條件。

DROP DATABASE 刪除資料庫

DROP DATABASE 會刪除整個資料庫,包含其中所有的資料表和資料。

DROP DATABASE database_name;

範例:

DROP DATABASE old_project;

避免錯誤

DROP DATABASE IF EXISTS old_project;
DROP DATABASE 是非常危險的操作,會刪除資料庫中所有的資料表和資料,請確認再三後再執行!