MariaDBデータベースの構造を丸裸にする!SHOW CREATE DATABASEコマンドで詳細情報を徹底分析


SHOW CREATE DATABASEコマンドは、MariaDBデータベースにおける特定のデータベースの作成に使用されたSQLステートメントを表示します。データベースの詳細な構造や設定を確認する際に役立ちます。

構文

SHOW CREATE DATABASE [database_name];

説明

  • database_name: 操作対象のデータベース名を指定します。

オプション

なし

出力

コマンドを実行すると、指定されたデータベースを作成するのに使用された CREATE DATABASE ステートメントが表示されます。出力には、データベース名、文字セット、照合順序などの情報が含まれます。

SHOW CREATE DATABASE test_db;

このコマンドを実行すると、test_dbデータベースを作成するのに使用された CREATE DATABASE ステートメントが表示されます。

  • SHOW CREATE DATABASE コマンドは、スキーマオブジェクト (テーブル、ビュー、プロシージャなど) の作成ステートメントを表示する SHOW CREATE SCHEMA コマンドと似ています。
  • このコマンドは、データベースのバックアップを取得したり、データベースを別のサーバーに移行したりする際に役立ちます。
  • SHOW CREATE DATABASE コマンドを実行するには、対象データベースに対する CREATE 権限が必要です。


SHOW CREATE DATABASE test_db;

例2:IF NOT EXISTS オプションを使用する

SHOW CREATE DATABASE IF NOT EXISTS test_db;

このコマンドは、test_dbデータベースが存在しない場合にのみ作成します。データベースが既に存在する場合は、何も表示されません。

例3:出力結果をファイルに保存する

SHOW CREATE DATABASE test_db > test_db_create.sql;

このコマンドは、test_dbデータベースの作成ステートメントを test_db_create.sql というファイルに保存します。

例4:データベースの文字セットと照合順序を指定する

CREATE DATABASE test_db CHARACTER SET utf8 COLLATE utf8_general_ci;

このコマンドは、test_dbデータベースを作成し、その文字セットを utf8、照合順序を utf8_general_ci に設定します。

例5:SHOW CREATE DATABASE コマンドを使用して作成されたファイルをインポートする

SOURCE test_db_create.sql;

このコマンドは、test_db_create.sql ファイルの内容を実行し、test_dbデータベースを作成します。

これらの例は、SHOW CREATE DATABASE コマンドを様々な状況で使用する方法を示しています。

  • SHOW CREATE DATABASE コマンドは、データベースの詳細な情報を取得するためによく使用されますが、データベースのバックアップを作成するには適していません。データベースのバックアップを作成するには、mysqldump コマンドを使用する必要があります。
  • コマンドを実行する前に、MariaDBサーバーに接続していることを確認してください。
  • 上記の例では、test_db というデータベース名を使用していますが、これは任意に変更できます。


SHOW CREATE DATABASE コマンドは、MariaDBデータベースの作成に使用された CREATE DATABASE ステートメントを表示する便利なツールですが、状況によっては代替手段が必要となる場合があります。以下に、いくつかの代替方法とその利点と欠点をご紹介します。

情報スキーマテーブルを使用する

MariaDBの情報スキーマには、INFORMATION_SCHEMA.SCHEMATA テーブルが含まれています。このテーブルには、データベースに関する情報が格納されており、CREATE DATABASE ステートメントで使用される情報も含まれています。

利点

  • CREATE DATABASE ステートメント以外の情報も取得できます。
  • SHOW CREATE DATABASE コマンドよりも高速で効率的である可能性があります。

欠点

  • SHOW CREATE DATABASE コマンドほど直感的な形式ではない場合があります。
  • INFORMATION_SCHEMA テーブルへのアクセスには、適切な権限が必要です。

SELECT SQL_STATEMENT
FROM INFORMATION_SCHEMA.SCHEMATA
WHERE SCHEMA_NAME = 'test_db';

このコマンドは、test_dbデータベースを作成するのに使用された CREATE DATABASE ステートメントを返します。

pg_dump (PostgreSQL用ユーティリティ) を使用する

pg_dump は、PostgreSQLデータベースのバックアップと復元に使用されるユーティリティですが、MariaDBデータベースの情報を取得するのにも使用できます。

利点

  • スキーマだけでなく、データもダンプできます。
  • SHOW CREATE DATABASE コマンドよりも詳細な情報を取得できます。

欠点

  • コマンドラインユーティリティであるため、GUI ツールよりも使いにくい場合があります。
  • PostgreSQL用に設計されているため、MariaDBで使用するにはオプションを調整する必要がある場合があります。

pg_dump -d test_db -C | grep CREATE DATABASE

このコマンドは、test_dbデータベースのスキーマをダンプし、CREATE DATABASE ステートメントのみを出力します。

mysqldump (MariaDB公式バックアップユーティリティ) を使用する

mysqldump は、MariaDBデータベースのバックアップと復元に使用される公式ユーティリティであり、データベースの作成情報も取得できます。

利点

  • pg_dump よりも高速で効率的である可能性があります。
  • MariaDB用に特別に設計されているため、設定やオプションがわかりやすい。

欠点

  • データをダンプする機能はありますが、スキーマのみをダンプするオプションはありません。
  • SHOW CREATE DATABASE コマンドほど詳細な情報を取得できません。
mysqldump --skip-data -d test_db | grep CREATE DATABASE