MySQL のテーブルとデータベース構造を表示
今日は、MySQL でテーブルとデータベースの構造を表示できるクエリについて学習します。 mysqldump ユーティリティ、DESCRIBE、SHOW TABLES、および SHOW CREATE TABLE ステートメントを使用します。
このチュートリアルの作成中は、MySQL 8.0.28 バージョンを使用しました。
MySQL でテーブル構造を表示
要件に基づいて、さまざまな方法で MySQL のテーブル構造を取得できます。 それらのいくつかを以下に示します。
MySQL で mysqldump ユーティリティを使用する
mysqldump コマンドライン ツールを使用して、すべての CREATE TABLE ステートメントのセットとして完全なデータベース構造を持つことができます。
コード例:
# The `--compact` flag produces the compact output
mysqldump -u username -p ms23 --compact --no-data
特定のテーブルについては、データベースの名前の後にテーブルの名前を追加するか、次のように SHOW CREATE TABLE ステートメントを使用して同様の結果を得ることができます。
コード例:
# To use this, you must be logged in to MySQL Server and a database.
SHOW CREATE TABLE courses;
DESCRIBE ステートメントを使用して、以下で説明する列のリストを取得できます。
MySQL で DESCRIBE (Table) ステートメントを使用する
コード例:
DESCRIBE courses;
DESCRIBE ステートメントを使用するには、MySQL サーバーにログインする必要があります。 属性 (フィールド) 名、それらのデータ型、デフォルト値、キーなど、特定のテーブルの列リストを表示します。
または、DESC コース; として使用することもできます。 または EXPLAIN コース; 同じ結果が得られます。 テーブル名を忘れた場合は、SHOW TABLES; を使用できます。 特定のデータベース内のテーブルのリストを取得するステートメント。
コード例:
SHOW TABLES;
mysqldump を使用して MySQL のデータベース構造を表示する
mysqldump という名前のコマンドライン ツールを使用して、MySQL データベースのコピーまたはバックアップをダンプまたは作成します。 mysqldump コマンドを使用している間、要件に応じて複数のフラグを使用します。
たとえば、データベース構造のコピー中にデータを含めたくない場合は、--no-data フラグを使用します。 以下のシナリオを考慮してのみ、mysqldump を使用してデータベース構造を取得します。
- 1つのテーブルのみのデータベース構造を取得する
- 複数のテーブルのデータベース構造のみを取得
- 1つまたは複数のデータベースのデータベース構造のみを取得する
- すべてのデータベースのデータベース構造をファイルに取得します
MySQL Server をデフォルトの場所にインストールした場合、次のコマンドを使用するには、C:\Program Files\MySQL\MySQL Server 8.0\bin> ディレクトリにいる必要があります。
次のコマンドでは、コマンドを使用する前に理解する必要があるさまざまなフラグを使用します。
-uフラグはユーザー名を示します。-pフラットは、要求されたときにパスワードが提供されることを示します (-pフラグを使用してスペースなしでパスワードを入力することもできます。たとえば、-p12345ですが、セキュリティ上の理由からお勧めしません )。- データを含める必要がない場合は、
--no-dataを使用します。 または、ここで-dを使用することもできます。 - 1つまたは複数のデータベースのバックアップを取得する場合は、
--databaseを使用します。 --all-databasesを使用して、すべてのデータベースを一度にバックアップします。- 大なり記号 (
>) でバックアップ ファイルを保存できます。 復元するには、より小さい (<) 記号を使用できます。
コード例 (1つのテーブルのデータベース構造のみを取得):
mysqldump -u username -p --no-data DatabaseName TableName;
コード例 (複数のテーブルのデータベース構造のみを取得):
mysqldump -u username -p --no-data DatabaseName TableName1 TableName2 TableNameN;
コード例 (1つまたは複数のデータベースのデータベース構造のみを取得):
# `-d` is used as an alternative to the `--no-data` option
mysqldump -u username -p -d --databases DatabaseName
データベース構造を標準出力にダンプする方法を学びました。 これは、ターミナル (コマンド ライン ウィンドウ) を上下にスクロールする必要があることを意味しますが、これは役に立たない可能性があります。
> を使用して、データのないバックアップをファイルに保存できます。 上記のコマンドでも同様に実行できます。
コード例 (すべてのデータベースのデータベース構造をファイルに取得):
mysqldump -u username -p --no-data --all-databases > E:\\Databases_Structure.sql
関連記事 - MySQL Table
- MySQL テーブルから最初の行を選択する
- MySQL テーブルのすべての行をループする
- MySQL でデータをコピーせずにテーブル構造をコピーする
- MySQL で最後に挿入されたレコードの ID を取得する
- MySQL の 2つのテーブルの違い
