亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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 是一個非常強大卻又非常簡單的指令,想要熟練地使用并不難,但是如何正確地使用、保證數據庫的安全卻不簡單。