MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで名前に「?」を含むデータベースを削除(DROP)する方法

MySQLでは、データベース名に「?」のような特殊文字が含まれている場合、通常の方法では削除できません。このようなデータベースを削除するには、データベース名をバッククォート(`)で囲む必要があります。

基本構文

DROP DATABASE `データベース名`;

実際に試してみよう

まず、理解を深めるために「?」を含むデータベースを作成してみましょう。データベース作成のクエリは以下のとおりです。

mysql> create database `test?data`;
Query OK, 1 row affected (0.14 sec)

これで、「?」という文字を含むデータベースが作成されました。すべてのデータベースを確認するには、次のクエリを実行します。

mysql> show databases;

実行結果は以下のとおりです。

+-----------------------+
| Database              |
+-----------------------+
| business              |
| commandline           |
| database1             |
| databasesample        |
| education             |
| hb_student_tracker    |
| hello                 |
| information_schema    |
| javadatabase2         |
| javasampledatabase    |
| mybusiness            |
| mydatabase            |
| mysql                 |
| onetomanyrelationship |
| performance_schema    |
| rdb                   |
| sample                |
| sampledatabase        |
| schemasample          |
| sys                   |
| test                  |
| test3                 |
| test?data             |
| universitydatabase    |
| web                   |
| webtracker            |
+-----------------------+
26 rows in set (0.09 sec)

一覧の中に「test?data」というデータベースが存在していることが確認できます。

「?」を含むデータベースを削除する

「?」という文字を含むデータベースを削除するには、前述のとおり、データベース名をバッククォートで囲みます。クエリは以下のとおりです。

mysql> drop database `test?data`;
Query OK, 0 rows affected (0.32 sec)

削除結果の確認

削除後、再度データベース一覧を表示して確認してみましょう。実行するクエリは以下のとおりです。

mysql> show databases;

実行結果は以下のとおりです。

+-----------------------+
| Database              |
+-----------------------+
| business              |
| commandline           |
| database1             |
| databasesample        |
| education             |
| hb_student_tracker    |
| hello                 |
| information_schema    |
| javadatabase2         |
| javasampledatabase    |
| mybusiness            |
| mydatabase            |
| mysql                 |
| onetomanyrelationship |
| performance_schema    |
| rdb                   |
| sample                |
| sampledatabase        |
| schemasample          |
| sys                   |
| test                  |
| test3                 |
| universitydatabase    |
| web                   |
| webtracker            |
+-----------------------+
25 rows in set (0.00 sec)

上記の出力を見ると、行数が26から25に減っており、「test?data」という名前のデータベースが存在しなくなっていることがわかります。

まとめ

MySQLで「?」などの特殊文字を含むデータベース名を扱う場合は、バッククォート(`)で名前を囲むことが重要です。これはCREATE文やDROP文だけでなく、SELECTやUSEなど、特殊文字を含むデータベース名を参照するすべての場面で有効なテクニックです。バッククォートを使わないと構文エラーが発生したり、意図しない動作を引き起こす可能性があるため、注意しましょう。

  1. MySQLで特定のカラム名を持つテーブルを検索する方法

    MySQLで特定のカラム名(列名)を持つテーブルを探したい場合は、システムビューである information_schema.columns を利用します。このビューにはデータベース内のすべてのテーブルとカラムの情報が格納されているため、条件を指定して検索するだけで、目的のカラムを持つテーブルを簡単に特定できます。 基本構文 カラム名からテーブル名を検索する際の基本的な構文は以下の通りです。 select distinct table_name from information_schema.columns where column_name like %yourSearchValue% a

  2. AccessデータベースでMySQLのLIMIT句をシミュレートする方法

    AccessデータベースでLIMIT句をシミュレートする方法Microsoft Accessには、MySQLのLIMIT句に直接相当する構文は存在しません。しかし、代わりにTOP句を使用することで、同じようにクエリ結果の先頭から指定した件数のレコードを取得することが可能です。この記事では、実際にテーブルを作成し、データを挿入しながら、AccessでLIMIT句と同等の処理を実現する手順を解説します。ステップ1:テーブルの作成まず、サンプル用のテーブルを作成します。ステップ2:レコードの挿入次に、INSERTコマンドを使用してテーブルにレコードを挿入します。ステップ3:LIMIT句をシミュレート