06 SQL Drop
1. 定義
維基百科:
Drop
指令用於在 RDBMS 中刪除資料庫,資料表,索引,和檢視等。
解釋:
Drop
指令強大而又危險,它能迅速清理掉資料庫垃圾,不過使用之前請仔細斟酌,在未備份的情況下,刪除的資料很可能再也找不回來了。
2. 前言
本小節,我們將一起學習 SQL Drop
。
在資料庫程式設計和運維中,可能經常性的需要刪除掉某些無用的備份表、備份庫和一些過期的檢視。通過 Drop 指令我們可以輕鬆的完成這些操作。
提示: Drop 幾乎可以清理掉資料庫中的任何物件,因此在操作之前必須確保資料的安全性。
本小節測試資料如下,請先在資料庫中執行:
DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
username varchar(20),
age int
);
ALTER TABLE imooc_user ADD INDEX age_index(age);
如果你是 PostgreSQL,那麼請使用下面的語句:
CREATE TABLE imooc_user
(
username varchar(20),
age int
);
CREATE INDEX age_index ON imooc_user(age);
3. 刪除資料庫
Drop 指令可用於刪除資料庫。
刪除資料庫的語法如下:
DROP DATABASE [db_name];
其中db_name
是待刪除資料庫名稱。
3.1 例1 刪除 imooc
請書寫 SQL 語句,刪除imooc
資料庫。
分析:
按照語法刪除 imooc 即可。
語句:
DROP DATABASE imooc;
4. 刪除資料表
使用 Drop 指令還可以用來刪除資料表。
語法如下:
DROP TABLE [table_name];
其中table_name
是待刪除資料表名稱。
4.1 例2 刪除 imooc_user
請書寫 SQL 語句,刪除imooc_user
資料表。
分析:
呼叫 Drop 刪除 imooc_user 即可。
語句:
DROP TABLE imooc_user;
5. 清空表資料
Truncate 是另外一種實用的指令,可以在保留資料表
的情況下清空資料表資料。
使用語法如下:
TRUNCATE TABLE [table_name];
其中table_name
表示資料表名稱。
5.1 例3 清空 imooc_user 資料
請書寫 SQL 語句,清除imooc_user
表中的所有資料。
分析:
按照上面的語法清除即可,
語句:
TRUNCATE TABLE imooc_user;
6. 刪除表字段
Drop 可與 Alter 指令搭配來刪除資料表字段。
語法如下:
ALTER TABLE [table_name] DROP [col];
其中table_name
是資料表名稱,col
是待刪除欄位名稱。
6.1 例4 刪除 age 欄位
請書寫 SQL 語句,刪除imooc_user
表中的age
欄位。
分析:
按照語法刪除即可。
語句:
ALTER TABLE imooc_user DROP age;
刪除成功後,imooc_user
表資訊如下:
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | YES | | <null> | |
+----------+-------------+------+-----+---------+-------+
7. 刪除索引
Drop 還可與 Alter 指令搭配用來刪除索引。
語法如下:
ALTER TABLE [table_name] DROP INDEX [index_name];
其中index_name
代表索引名稱。
PostgreSQL 刪除索引語法如下:
DROP INDEX [index_name];
7.1 例5 刪除 age_index 索引
請書寫 SQL 語句,刪除 imooc_user 表中的age_index
索引。
分析:
按照語法寫出刪除語句即可。
語句:
ALTER TABLE imooc_user DROP INDEX age_index;
PostgreSQL 略有不同,語句如下:
DROP INDEX age_index;
8. 刪除檢視
使用 Drop 還可以用來刪除無用的檢視。
刪除檢視的語法如下:
DROP VIEW [view_name];
其中view_name
表示檢視名稱,關於檢視,我們將在 SQL 檢視一節中再詳細介紹。
9. 小結
- Drop 是一個非常強大卻又非常簡單的指令,想要熟練地使用並不難,但是如何正確地使用、保證資料庫的安全卻不簡單。