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 的差異
| 特性 | TRUNCATE | DELETE |
|---|---|---|
| 刪除範圍 | 全部資料 | 可以指定 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 是非常危險的操作,會刪除資料庫中所有的資料表和資料,請確認再三後再執行!