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

MySQLでデータベースが存在するかどうかを確認する方法を徹底解説

MySQLで特定のデータベースが存在するかどうかを確認したい場合、information_schema.schemataテーブルのschema_nameカラムに対してSELECTクエリを実行するのが基本的な方法です。本記事では、存在確認のSQL構文から、showusedescといった便利なコマンドの使い方まで、実行例付きでわかりやすく解説します。

データベースの存在確認に使う基本構文

指定した名前のデータベースが存在しているかどうかをチェックするには、以下のSQL構文を使用します。

select schema_name from information_schema.schemata
where schema_name = 'データベース名';

ケース1:データベースが存在する場合

例として、「business」というデータベースが存在するかどうかを確認してみましょう。

mysql> select schema_name from information_schema.schemata where schema_name = 'business';

実行結果は以下の通りです。データベースが存在する場合は、該当するスキーマ名が1件返されます。

+-------------+
| SCHEMA_NAME |
+-------------+
| business    |
+-------------+
1 row in set (0.00 sec)

ケース2:データベースが存在しない場合

次に、存在しない「sample2」というデータベースを検索した場合の例です。

mysql> select schema_name from information_schema.schemata where schema_name = 'sample2';
Empty set (0.00 sec)

結果が「Empty set」となれば、そのデータベースは存在しないことがわかります。

なお、より手軽に確認したい場合は、show databases like 'データベース名';を使う方法もあります。こちらも該当データベースがあれば一覧に表示され、なければ空の結果が返ります。

補足:showコマンドでデータベースの一覧を確認する

MySQLサーバー上にどれだけのデータベースが存在するかを一覧で把握したい場合は、show databases;コマンドが便利です。

mysql> show databases;

実行すると、サーバー内の全データベースが以下のように表示されます。

+--------------------+
| Database           |
+--------------------+
| business           |
| hello              |
| information_schema |
| mybusiness         |
| mysql              |
| performance_schema |
| sample             |
| sys                |
| test               |
+--------------------+
9 rows in set (0.00 sec)

useコマンドで操作対象のデータベースを選択する

作業対象とするデータベースを切り替える際は、useコマンドを使用します。

mysql> use business;
Database changed

「Database changed」と表示されれば、データベースの選択は完了です。

show tablesでテーブル一覧を確認する

選択したデータベース内にどんなテーブルが存在するのかを調べるには、show tables;コマンドを実行します。

mysql> show tables;

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

+----------------------+
| Tables_in_business   |
+----------------------+
| addcolumntable       |
| bookindexes          |
| chardemo             |
| demo                 |
| demoascii            |
| demobcrypt           |
| demoint              |
| demoschema           |
| duplicatebookindexes |
| existsrowdemo        |
| foreigntable         |
| groupdemo            |
| int1demo             |
| intdemo              |
| latandlangdemo       |
| modifycolumnnamedemo |
| modifydatatype       |
| moviecollection      |
| mytable              |
| nthrecorddemo        |
| nulldemo             |
| primarytable         |
| primarytable1        |
| smallintdemo         |
| student              |
| tblstudent           |
| tbluni               |
| textdemo             |
| texturl              |
| varchardemo          |
| varcharurl           |
+----------------------+
31 rows in set (0.00 sec)

descコマンドでテーブルの構造を確認する

特定のテーブルの構造(カラム定義)を詳しく確認したいときは、descコマンドを使います。構文は以下の通りです。

desc テーブル名;

例えば、「modifydatatype」テーブルの構造を確認するクエリは次のようになります。

mysql> desc modifydatatype;

実行すると、カラム名・データ型・NULLの可否・キー情報・デフォルト値などが一覧で表示されます。

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | int(11)      | YES  |     | NULL    |       |
| YourName | varchar(100) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

まとめ

MySQLでは、information_schema.schemataへのSELECTクエリによってデータベースの存在有無を正確に確認できるほか、show databasesshow tablesdescなどのコマンドを組み合わせることで、データベースやテーブルの状態を効率的に把握できます。日々の開発や運用作業にぜひ活用してください。

  1. MySQLデータベースのバックアップ方法を徹底解説!phpMyAdmin・mysqldump・Cronジョブ・WordPressプラグインの使い方

    MySQLはリレーショナルデータベース管理システム(RDBMS)の一つです。データベースへの命令を処理し、複数のデータベースを同時に管理することができます。 例えば、新しいデータベースを作成したい場合や、既存のデータベースにデータを追加したい場合は、MySQLサーバーに対してメッセージを送り、追加したいデータとその保存先を指定します。 ビジネスの規模が小さくても大きくても、データは欠かせない重要な資産です。貴重な情報を破損・盗難・災害などの被害から守るためには、MySQLデータベースのバックアップが不可欠です。この記事では、その具体的な方法をいくつかご紹介します。 phpMyAdminを使っ

  2. MySQLで現在選択中のデータベースを確認する方法|DATABASE()関数とstatusコマンドの使い方

    MySQLに接続している際、「今どのデータベースを選択しているのか」を確認したい場面はよくあります。この記事では、DATABASE()関数やstatusコマンドを使って、現在選択中のデータベース名を簡単に確認する方法を解説します。 DATABASE()関数で選択中のデータベースを確認する MySQLでは、DUALテーブルに対してDATABASE()関数を実行することで、現在選択されているデータベース名を取得できます。 手順1:データベースを選択する まず、例として「business」というデータベースを選択してみましょう。以下のコマンドを実行します。 mysql> use busi