今天来学习DROP命令。
程序都是四种语句状态:新增、查找、修改、删除。
DROP 命令语句当然属于第四种“删除”语句状态。
让我们先通过帮助命令查看一下该语句的语法结构
mysql> HELP ‘DROP DATABASE’;
Name: ‘DROP DATABASE’
Description:
Syntax:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
DROP DATABASE drops all tables in the database and deletes the
database. Be very careful with this statement! To use DROP DATABASE,
you need the DROP privilege on the database. DROP SCHEMA is a synonym
for DROP DATABASE.
*Important*:
When a database is dropped, privileges granted specifically for the
database are not automatically dropped. They must be dropped manually.
See [HELP GRANT].
IF EXISTS is used to prevent an error from occurring if the database
does not exist.
URL: https://dev.mysql.com/doc/refman/8.0/en/drop-database.html
从上面的信息,我已经基本知道如何使用了。因为和创建数据库基本一直,只是关键字变成了 DROP 。更加简单的是,就连其它选项都没有!唯一的子句是 IF EXISTS 。
对于语句的说明,帮助中也比较详细。
1:删除数据库的同时,也会删除数据库中的数据表。
2:对该删除数据库的操作,需要非常的小心。
3:使用该语句,必须有相应的权限。
4:DATABASE | SCHEMA 是同义词,都可以用于删除数据库。
当然,在帮助信息中还有一些信息,他会告诉你,这个操作不是自动的。感觉就有点废话了。
在MySQL的官方资料中,还有一部分信息很有意思。
删除数据库不会删除在该数据库中创建的任何 TEMPORARY(临时表)表。 临时表在创建它们的会话结束时自动删除。
有点蒙是吧?这个知识点是在之后将要学习到的创建表中才会提到,不过很多书籍资料说的都是创建表,而没有提到 临时表 。没事,本笔者本着深探知识为出发点,在之后的文章中一定会说到该知识点。
先来操作一下删除数据库吧!
GO!
| db_test1 |
| db_test2 |
| db_test3 |
7 rows in set (0.00 sec)
查看所有数据库名称列表,请注意! db_test1 , db_test2 , db_test3是之前为了学习临时创建的数据库。 information_schema , mysql , performance_schema , sys 4个是系统自建数据库,里面有非常重要的数据保存,请不要删除!
mysql> DROP DATABASE db_test1; #输入删除数据库语句。
Query OK, 0 rows affected (0.04 sec)
mysql> DROP SCHEMA db_test2; #输入删除数据库语句。
Query OK, 0 rows affected (0.01 sec)
mysql> DROP SCHEMA IF EXISTS db_test3; #输入删除数据库语句。
Query OK, 0 rows affected (0.01 sec)
mysql> SHOW DATABASES;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| sys |
+——————–+
4 rows in set (0.00 sec) #查看删除后的数据库列表,确认已经删除指定数据库。
mysql> DROP SCHEMA IF EXISTS db_test3; #故意再次删除没有的数据库。
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> SHOW WARNINGS; #查看报错信息。
+——-+——+——————————————————–+
| Level | Code | Message |
+——-+——+——————————————————–+
| Error | 1008 | Can’t drop database ‘db_test3’; database doesn’t exist |
+——-+——+——————————————————–+
1 row in set (0.00 sec)
mysql> DROP SCHEMA db_test3;
ERROR 1008 (HY000): Can’t drop database ‘db_test3’; database doesn’t exist
以上实际操作,我们故意使用已经被删除的数据库名称,让系统报错。
结果与在创建数据库时的情况一样。
IF EXISTS 子句的加入,可以让程序判断,先不报错,继续执行该语句。
而不添加该子句时,语句就直接停止后 报错。
到本篇写完截止时间是2021年9月13日。
所有资料来源都是官方文档信息,如果之后有更改调整的,学习后再与大家一起分享。
本章小结:
我们学习了如何在MySQL系统中对数据库操作。
其中包括:
创建数据库:CREATE {DATABASE | SCHEMA}
查找数据库:SHOW {DATABASES | SCHEMAS} #请注意!查找语句中 关键字是代S复数的。
修改数据库:ALTER {DATABASE | SCHEMA}
删除数据库:DROP {DATABASE | SCHEMA}
小贴纸
笔者水平有限,难免有错误的地方,如果您发现,很希望能告诉我。
raoul@foxmail.com是我的联系方式。也期待在学习中有任何的问题,能一起来讨论,期待您的来信。
谢谢!




