MySQLでデータベースが存在するかどうかを確認する方法を徹底解説
MySQLで特定のデータベースが存在するかどうかを確認したい場合、information_schema.schemataテーブルのschema_nameカラムに対してSELECTクエリを実行するのが基本的な方法です。本記事では、存在確認のSQL構文から、show、use、descといった便利なコマンドの使い方まで、実行例付きでわかりやすく解説します。
データベースの存在確認に使う基本構文
指定した名前のデータベースが存在しているかどうかをチェックするには、以下の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 databasesやshow tables、descなどのコマンドを組み合わせることで、データベースやテーブルの状態を効率的に把握できます。日々の開発や運用作業にぜひ活用してください。
-
MySQLデータベースのバックアップ方法を徹底解説!phpMyAdmin・mysqldump・Cronジョブ・WordPressプラグインの使い方
MySQLはリレーショナルデータベース管理システム(RDBMS)の一つです。データベースへの命令を処理し、複数のデータベースを同時に管理することができます。 例えば、新しいデータベースを作成したい場合や、既存のデータベースにデータを追加したい場合は、MySQLサーバーに対してメッセージを送り、追加したいデータとその保存先を指定します。 ビジネスの規模が小さくても大きくても、データは欠かせない重要な資産です。貴重な情報を破損・盗難・災害などの被害から守るためには、MySQLデータベースのバックアップが不可欠です。この記事では、その具体的な方法をいくつかご紹介します。 phpMyAdminを使っ
-
MySQLで現在選択中のデータベースを確認する方法|DATABASE()関数とstatusコマンドの使い方
MySQLに接続している際、「今どのデータベースを選択しているのか」を確認したい場面はよくあります。この記事では、DATABASE()関数やstatusコマンドを使って、現在選択中のデータベース名を簡単に確認する方法を解説します。 DATABASE()関数で選択中のデータベースを確認する MySQLでは、DUALテーブルに対してDATABASE()関数を実行することで、現在選択されているデータベース名を取得できます。 手順1:データベースを選択する まず、例として「business」というデータベースを選択してみましょう。以下のコマンドを実行します。 mysql> use busi