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 是一个非常强大却又非常简单的指令,想要熟练地使用并不难,但是如何正确地使用、保证数据库的安全却不简单。