資料庫開發過程中,需求變更時常需要修改現有資料表結構或刪除不再需要的物件。本文詳細說明 ALTER TABLE 修改資料表欄位,以及 DROP 刪除索引、資料表、資料庫的語法與注意事項。
ALTER TABLE 陳述式用於新增、刪除或修改現有資料表的欄位。
ALTER TABLE table_name ADD column_name datatype;
ALTER TABLE table_name DROP COLUMN column_name;
注意:部分資料庫系統(如舊版 SQL Server)不支援直接刪除欄位,需透過建立新表遷移資料方式處理。
ALTER TABLE table_name ALTER COLUMN column_name datatype;
MySQL 語法略有不同:ALTER TABLE table_name MODIFY column_name datatype;
DROP 陳述式可永久刪除索引、資料表、資料庫,**操作不可回覆,請謹慎使用**。
不同資料庫系統語法不同:
| 資料庫系統 | 語法 |
|---|---|
| MS Access | |
| MS SQL Server | |
| DB2 / Oracle | |
| MySQL |
DROP TABLE table_name;
會連同資料、索引、觸發器、約束條件一併刪除。
DROP DATABASE database_name;
會刪除資料庫內所有物件,**極度危險,生產環境嚴禁直接執行**。
若只想刪除資料表內所有資料,但保留資料表結構,使用 TRUNCATE TABLE:
TRUNCATE TABLE table_name;
特點:比 DELETE 快得多、不觸發觸發器、重置自動遞增計數器、無法回滾(隱含 COMMIT)。
IF EXISTS 避免報錯:DROP TABLE IF EXISTS table_name;