MariaDBのSHOW DATABASES:サンプルコードと代替方法でデータベース操作をマスター


SHOW DATABASES ステートメントは、MariaDBサーバー内に存在するすべてのデータベースの名前をリストするものです。データベースの管理や調査を行う際に役立ちます。

構文

SHOW DATABASES [LIKE 'pattern'] [WHERE condition];

オプション

  • WHERE condition: 条件に一致するデータベース名のみをリストします。条件式には、データベース名、作成日時、所有者などの列を使用できます。
  • LIKE 'pattern': パターンに一致するデータベース名のみをリストします。ワイルドカード文字 % を使用してパターンを指定できます。

  • すべてのデータベースをリストする
SHOW DATABASES;
  • 'test' で始まるデータベース名をリストする
SHOW DATABASES LIKE 'test%';
  • 作成日が2024年7月16日以降のデータベース名をリストする
SHOW DATABASES WHERE Create_Time >= '2024-07-16';

実行方法

SHOW DATABASES ステートメントは、MariaDBクライアントツールを使用して実行できます。コマンドラインツールや、MySQL WorkbenchなどのGUIツールを使用できます。

結果

SHOW DATABASES ステートメントが成功すると、データベース名のリストが返されます。各データベース名は1行に表示されます。

  • データベースの詳細については、SHOW CREATE DATABASE ステートメントを使用できます。
  • SHOW DATABASES ステートメントは、データベースの所有権やアクセス権に関する情報を提供しません。
  • SHOW DATABASES ステートメントは、すべての権限を持つユーザーのみ実行できます。


すべてのデータベースをリストする

SHOW DATABASES;

このコードを実行すると、MariaDBサーバー内に存在するすべてのデータベースの名前がリストされます。

特定のパターンに一致するデータベースをリストする

SHOW DATABASES LIKE 'test%';

このコードを実行すると、test で始まる名前のデータベースのみがリストされます。

SHOW DATABASES WHERE Create_Time >= '2024-07-16';

このコードを実行すると、2024年7月16日以降に作成されたデータベースのみがリストされます。



SHOW DATABASES ステートメント以外にも、MariaDB サーバー内のデータベースをリストする方法がいくつかあります。

INFORMATION_SCHEMA データベースを使用する

INFORMATION_SCHEMA データベースには、すべてのデータベースに関する情報が含まれる SCHEMATA テーブルがあります。このテーブルを使用して、データベース名のリストを取得できます。

SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA;

システムカタログテーブルを使用する (MySQL 8.0以降)

MySQL 8.0 以降では、sys.schemas システムカタログテーブルを使用して、データベース名のリストを取得できます。

SELECT schema_name FROM sys.schemas;

MySQL クライアントツールの情報を使用する

多くの MySQL クライアントツールには、データベース名のリストを表示できる組み込みコマンドがあります。たとえば、MySQL コマンドラインツールでは、次のコマンドを使用できます。

mysql -h localhost -u root -p --database=information_schema -e "SELECT SCHEMA_NAME FROM SCHEMATA;"

API を使用する

MariaDB には、データベース名のリストを取得できる API が用意されています。たとえば、MySQL C API では、mysql_list_dbs 関数を使用できます。

どの方法を選択するべきか

使用する方法は、状況によって異なります。

  • プログラムでデータベースにアクセスする必要がある場合
    API を使用できます。
  • 特定の MySQL クライアントツールを使用している場合
    そのツールの組み込みコマンドを使用できます。
  • より多くの情報が必要な場合
    INFORMATION_SCHEMA データベースまたはシステムカタログテーブルを使用できます。
  • シンプルな方法が必要な場合
    SHOW DATABASES ステートメントを使用するのが最も簡単です。

SHOW DATABASES の代替方法の利点

  • より柔軟性がある
    API を使用すると、データベース名のリストをフィルタしたり、ソートしたりするなど、より多くの操作を実行できます。
  • 複雑な場合がある
    INFORMATION_SCHEMA データベース、システムカタログテーブル、または API を使用するには、SHOW DATABASES ステートメントを使用するよりも多くの知識が必要です。