十、MySQL 删除数据库

MySQL 删除数据库的方式有两种

1、 使用mysqladmindrop命令删除数据库;
2、 使用DROPDATABASE语句删除数据库;

在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失,而且不可撤销

如果使用普通用户连接到 MySQL 服务器,可能需要特定的权限来创建或者删除 MySQL 数据库

我们使用 root 用户登录,因为 root 用户拥有最高权限

使用 mysqladmin drop 命令删除数据库

可以使用 mysqladmin drop 命令来删除数据库

mysqladmin 命令语法格式如下

mysqladmin [OPTIONS] command [command-option] command ...

通过执行 mysqladmin --help,可以得到 mysqladmin 的版本所支持的一个选项列表

命令(command) 描述
create databasename 创建一个新数据库
drop databasename 删除一个数据库及其所有表
extended-status 给出服务器的一个扩展状态消息
flush-hosts 洗掉所有缓存的主机
flush-logs 洗掉所有日志
flush-tables 洗掉所有表
flush-privileges 再次装载授权表(同 reload )
kill id,id,… 杀死 mysql 线程
password 新口令,将老口令改为新口令
ping 检查 mysqld 是否活着
processlist 显示服务其中活跃线程列表
reload 重载授权表
refresh 洗掉所有表并关闭和打开日志文件
shutdown 关掉服务器
status 给出服务器的简短状态消息
variables 打印出可用变量
version 得到服务器的版本信息

下面的mysqladmin drop 可以删除我们前一章节中创建的 souyunku 数据库

mysqladmin -u root -p drop souyunku

完整演示如下

[root@ddkk.com ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| souyunku               |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]> exit
Bye
[root@ddkk.com ~]# mysqladmin -u root -p drop souyunku
Enter password:
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.
Do you really want to drop the 'souyunku' database [y/N] y
Database "souyunku" dropped
[root@ddkk.com ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

在上面的演示过程中,执行删除命令时,会出现一个提示框,来确认是否真的删除数据库

使用 DROP DATABASE 语句创建数据库

使用DROP DATABASE 语句删除数据库前先要连接到 MySQL 数据库服务器

DROP DATABASE 命令语法格式如下

DROP DATABASE **databasename**;

下面的SQL 语句删除了我们上一章节中添加的 souyunku 数据库

DROP DATABASE souyunku;

演示过程如下

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| souyunku               |
+--------------------+
5 rows in set (0.01 sec)
MariaDB [(none)]> DROP DATABASE souyunku;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

使用 PHP 脚本删除数据库

PHP使用 PDO::exec() 函数来创建或者删除 MySQL 数据库

PDO::exec() 函数只有一个参数,就是想要执行的 SQL 语句

PDO::exec 语法格式

int PDO::exec ( string $statement )

返回受修改或删除 SQL 语句影响的行数。如果没有受影响的行,则返回 0

参数

参数 说明
statement 要被预处理和执行的 SQL 语句,查询中的数据应该被妥善地转义

范例

下面的PHP 代码演示了如何用 PDO_MySQL 删除数据库 souyunku

<?php 
/*
 * filename: main.php
 * author: DDKK.COM 弟弟快看,程序员编程资料站(ddkk.com)
 * 
 * Copyright © 2015-2065 ddkk.com. All rights reserved.
 */
try {
    $dbh = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', '');    
    $rs = $dbh->exec('DROP DATABASE souyunku');
    if( !$rs )
    {
        echo '删除数据库 souyunku 失败:: ' ,$dbh->errorInfo()[2],"\n";
        exit();
    }
    echo "数据库 souyunku 删除成功\n";  
catch (PDOException $e) 
{    
    echo "错误!: " , $e->getMessage() , "\n";  

运行以上 PHP 代码,删除数据库成功后输出如下结果:

$ php main.php
数据库 souyunku 删除成功

注意

使用 PHP 脚本删除数据库时,不会出现确认是否删除信息,会直接删除指定数据库,所以在删除数据库时要特别小心,谨慎,谨慎再谨慎