6、MySQL刪除資料庫(DROP DATABASE語句)

不善表演發表於2020-10-07

當資料庫不再使用時應該將其刪除,以確保資料庫儲存空間中存放的是有效資料。刪除資料庫是將已經存在的資料庫從磁碟空間上清除,清除之後,資料庫中的所有資料也將一同被刪除

在 MySQL 中,當需要刪除已建立的資料庫時,可以使用 DROP DATABASE 語句。其語法格式為:

DROP DATABASE [ IF EXISTS ] <資料庫名>

語法說明如下:

  • <資料庫名>:指定要刪除的資料庫名。
  • IF EXISTS:用於防止當資料庫不存在時發生錯誤。
  • DROP DATABASE:刪除資料庫中的所有表格並同時刪除資料庫。使用此語句時要非常小心,以免錯誤刪除。如果要使用 DROP DATABASE,需要獲得資料庫 DROP 許可權。

注意:MySQL 安裝後,系統會自動建立名為 information_schema 和 mysql 的兩個系統資料庫,系統資料庫存放一些和資料庫相關的資訊,如果刪除了這兩個資料庫,MySQL 將不能正常工作。

例 1
下面在 MySQL 中建立一個測試資料庫 test_db_del。

mysql> CREATE DATABASE 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;
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從句,可以防止系統報此類錯誤,如下所示:

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

使用 DROP DATABASE 命令時要非常謹慎,在執行該命令後,MySQL 不會給出任何提示確認資訊。DROP DATABASE 刪除資料庫後,資料庫中儲存的所有資料表和資料也將一同被刪除,而且不能恢復。因此最好在刪除資料庫之前先將資料庫進行備份。備份資料庫的方法會在教程後面進行講解。

相關文章