LINEで現役エンジニアに直接質問してみよう!登録無料

MySQLでデータベースの削除する方法(DROP DATABASE)

MySQLのデータベースを削除するには「DROP DATABASE」コマンドを使います。

mysql> DROP DATABASE sampleapp_development;
Query OK, 0 rows affected (0.02 sec)

なお、既に存在しないデータベースを削除しようとした場合、下記のようなエラーになります。

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

この対処方についても解説します。

DROP DATABASEの基本

下記のコマンドでデータベースを削除出来ます。最後のセミコロン(;)をつけるのを忘れないでください。

DROP DATABASE データベース名;

DROP DATABASEを実行してみる

DROP DATABASEを実行する前に、何かしらのデータベースが存在していない削除のしようもありませんので、下記コマンドを実行してデータベースを作成します。

なお、各コマンドの最後のセミコロン(;)をつけるのを忘れないでください。

mysql> CREATE DATABASE sampleapp_development;
Query OK, 1 row affected (0.02 sec)

作成出来ているか確認してみましょう!

mysql> SHOW DATABASES;
+-----------------------+
| Database              |
+-----------------------+
| information_schema    |
| mysql                 |
| performance_schema    |
| sampleapp_development |
| sys                   |
+-----------------------+
5 rows in set (0.00 sec)

ちゃんと、sampleapp_developmentがありますね!それでは早速、作ったデータベースを削除してみましょう!

削除するには「DROP DATABASE データベース名;」を使います。

DROP DATABASE sampleapp_development;
Query OK, 0 rows affected (0.02 sec)

Query OKが出ると、正常に処理できています。SHOW DATABASESで確認してみましょう!

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

データベースが消えていますね!

ここまでが「DROP DATABASE」の基本です。

この後は、データベースが存在した時のみ削除する方法や、-を使った名前のデータベースを削除する方法などを解説していきます。

MEMO

なお、SHOW DATABASESCREATE DATABASEの詳しい内容は、下記記事を参考にしてくださいね!

MySQLでデータベースの一覧を確認する方法(SHOW DATABASES) MySQLでデータベースの作成する方法(CREATE DATABASE)

データベースが存在した時のみ削除する方法

データベースが存在しない時にDROP DATABASEを実行すると、下記のようにエラーになります。

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

存在しない時のみ削除したいときにはDROP DATABASE IF EXISTS データベース名を使いましょう!

何回実行してもエラーになることはありません。

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

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

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

「-」を使った名前のデータベースを削除する方法

-を使ったデータベースを削除する方法を紹介します。-を使ったデータベースを削除しようとすると、下記のようにエラーになります。

mysql> DROP DATABASE sampleapp-development;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-development' at line 1

エラーメッセージを見ると「-development部分が構文エラーですよ」となっていますね。

このように、-を使うと、思わぬエラーの原因になったりします。トラブルを避けるためにも今後は使わないようにしましょう!

このデータベースを削除するには、`(バッククオート)でデータベース名を囲いましょう。

mysql> DROP DATABASE `sampleapp-development`;
Query OK, 0 rows affected (0.01 sec)

これで正常に削除出来ます。

まとめ

  • データベースを作成する時は、DROP DATABASEを使う
  • データベースが存在しなかった場合の作成はDROP DATABASE IF EXISTS データベース名を使う
  • -を使ったデータベース名は`(バッククオート)で囲むと削除できる

以上、DROP DATABASEの使い方をアキ(@hackablejp)が解説しました!

この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。