MySQL--05(数据库的删除)

    技术2022-07-12  72

    数据库的删除

    当数据库不再使用时应该将其删除,以确保数据库存储空间中存放的是有效数据。删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一同被删除。

    在 MySQL 中,当需要删除已创建的数据库时,可以使用

    DROP DATABASE 语句。其语法格式为: DROP DATABASE [ IF EXISTS ] <数据库名>

    语法说明如下:

    <数据库名>:指定要删除的数据库名。 IF EXISTS:用于防止当数据库不存在时发生错误。 DROP DATABASE:删除数据库中的所有表格并同时删除数据库。使用此语句时要非常小心,以免错误删除。如果要使用 DROP DATABASE,需要获得数据库 DROP 权限。

    注意:MySQL 安装后,系统会自动创建名为 information_schema 和 mysql 的两个系统数据库,系统数据库存放一些和数据库相关的信息,如果删除了这两个数据库,MySQL 将不能正常工作。

    测试步骤

    下面在 MySQL 中创建一个测试数据库 test_db_del。

    mysql> CREATE DATABASE test_db_del; #创建数据库test_db_del Query OK, 1 row affected (0.08 sec) mysql> SHOW DATABASES; #查看所有数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sakila | | sys | | test_db | | test_db_char | | test_db_del | | world | +--------------------+ 9 rows in set (0.00 sec)

    使用命令行工具将数据库 test_db_del 从数据库列表中删除,输入的 SQL 语句与执行结果如下所示:

    mysql> DROP DATABASE test_db_del; #删除命令,删除test_db_del数据库 Query OK, 0 rows affected (0.57 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sakila | | sys | | test_db | | test_db_char | | world | +--------------------+ 8 rows in set (0.00 sec)

    此时数据库 test_db_del 不存在。再次执行相同的命令,直接使用 DROP DATABASE test_db_del,系统会报错,如下所示:

    mysql> DROP DATABASE test_db_del; ERROR 1008 (HY000): Can't drop database 'test_db_del'; database doesn't exist

    如果使用IF EXISTS从句(if exists 即如果存在从句),可以防止系统报此类错误,如下所示:

    mysql> DROP DATABASE IF EXISTS test_db_del; Query OK, 0 rows affected, 1 warning (0.00 sec)

    使用 DROP DATABASE 命令时要非常谨慎,在执行该命令后,MySQL 不会给出任何提示确认信息。DROP DATABASE 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。因此最好在删除数据库之前先将数据库进行备份。

    使用PHP脚本删除数据表

    PHP使用 mysqli_query 函数来删除 MySQL 数据表。

    该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。

    语法

    mysqli_query(connection,query,resultmode); 参数描述connection必需。规定要使用的 MySQL 连接query必需,规定查询字符串。query可选。一个常量。可以是下列值中的任意一个:1.MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)2.MYSQLI_STORE_RESULT(默认)

    以下实例使用了PHP脚本删除数据表 runoob_tbl:

    删除数据库

    <?php $dbhost = 'localhost'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('连接失败: ' . mysqli_error($conn)); } echo '连接成功<br />'; $sql = "DROP TABLE runoob_tbl"; mysqli_select_db( $conn, 'RUNOOB' ); $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('数据表删除失败: ' . mysqli_error($conn)); } echo "数据表删除成功\n"; mysqli_close($conn); ?>

    执行成功后,我们使用以下命令,就看不到 runoob_tbl 表了:

    mysql> show tables; Empty set (0.01 sec)
    Processed: 0.027, SQL: 9