ウェブサイト検索

MySQL テーブルスキーマ表示


リレーショナルデータベースは、現代のデジタル時代において最も人気があり、影響力のあるデータベースの一つです。90年代に開発されたにもかかわらず、依然として普及しており、個々の開発者や企業アプリケーションによって広く採用されています。

リレーショナルデータベースは、あらかじめ定義されたスキーマの使用でよく知られています。スキーマはリレーショナルデータベースの基盤であり、実際のデータが追加される前にデータがどのように組織されるかのルールと構造を定義します。

データベース開発者として、データベーススキーマを構築し構造化する方法を学ぶことは必要です。このチュートリアルを通じて、最も人気のあるリレーショナルデータベース管理システムの一つであるMySQLを使って、テーブルスキーマを作成し表示する方法を説明します。

リレーショナルデータベースにおけるスキーマとは何ですか?

スキーマとは、リレーショナルデータベースにおけるデータの構造を定義するものを指します。スキーマは、カラムやデータ型など、データの重要な側面を決定するために使用されます。

簡単に言うと、スキーマはデータの組織化と実装の基盤を示す設計図のようなものです。しかし、スキーマ自体には実際のデータは含まれないことを覚えておいてください。

データベーススキーマの種類

以下はリレーショナルデータベースで一般的なスキーマタイプです:

  1. テーブル
  2. プライマリキー
  3. 外部キー
  4. 属性
  5. 関係

テーブルスキーマを作成する

テーブルのスキーマを表示する方法について議論する前に、説明のためのサンプルテーブルを作成しましょう。

サンプルコードスニペット:

create table blog(
post_id int auto_increment not null primary key,
author_id int not null,
title varchar(255) not null,
author_name varchar(100) not null,
post_date date not null,
category varchar(50) not null,
published bool
);

テーブルスキーマを表示するには進んでください。

テーブルスキーマの表示 - メソッド1 - テーブル作成中

MySQLでは、SHOWキーワードを使用してテーブルスキーマを表示できます。コマンドの構文:

SHOW CREATE TABLE database.table_name;

そのコマンドは、テーブル作成時に使用されたコマンドを返します。

上記に示されたブログのテーブルスキーマを表示するには、次のクエリを実行してください:

show create table linux-console.blog;

表示文は、結果を次のように出力します:

|Table|Create Table                                                                                                                                                                                                                                                                                                                                                          |
|-----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|blog |CREATE TABLE `blog` (¶  `post_id` int NOT NULL AUTO_INCREMENT,¶  `author_id` int NOT NULL,¶  `title` varchar(255) NOT NULL,¶  `author_name` varchar(100) NOT NULL,¶  `post_date` date NOT NULL,¶  `category` varchar(50) NOT NULL,¶  `published` tinyint(1) DEFAULT NULL,¶  PRIMARY KEY (`post_id`)¶) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci|

定義されたテーブルのスキーマ情報、つまり照合順序、文字セット、およびデータベースエンジンが表示されます。これは、別の環境で同じテーブルを複製する際に非常に役立ちます。

テーブルスキーマを表示 – メソッド2 – 説明

テーブルスキーマを取得する2番目で最も一般的な方法は、DESCRIBEキーワードを使用することです。構文は以下のコードスニペットに示されています:

DESCRIBE database.table_name;

ご推察の通り、このステートメントはユーザーフレンドリーなUIでテーブルスキーマを返します。

以下の例のスナップショットを見てください。

describe linux-console.blog;

この例では、linux-consoleデータベースからブログテーブルのスキーマを取得しています。出力:

|Field      |Type        |Null|Key|Default|Extra         |
|-----------|------------|----|---|-------|--------------|
|post_id    |int         |NO  |PRI|       |auto_increment|
|author_id  |int         |NO  |   |       |              |
|title      |varchar(255)|NO  |   |       |              |
|author_name|varchar(100)|NO  |   |       |              |
|post_date  |date        |NO  |   |       |              |
|category   |varchar(50) |NO  |   |       |              |
|published  |tinyint(1)  |YES |   |       |              |

ここでは、データが表形式で提示されているため、非常に読みやすく解釈しやすいことがわかります。

欠点は、describeコマンドの出力を直接別の環境でテーブル構造を再現するために使用できないことです。

注意: 以下の構文に示すように、DESCRIBEコマンドの代わりにEXPLAINを使用することができます:

EXPLAIN database.table_name;

注意: 一部のケースでは、テーブルスキーマが指定されたテーブルが存在するデータベースを参照しています。そのためには、以下の構文に示されているように、information_schemaテーブルにクエリを実行できます。

select TABLE_SCHEMA
from information_schema.TABLES t
where table_name = table_name;

得られた出力:

|TABLE_SCHEMA|
|------------|
|linux-console   |

閉店

この記事では、リレーショナルデータベースにおけるデータベーススキーマ、データベーススキーマの種類、およびMySQLでのテーブル構造の作成と表示について説明しました。

読んでくれてありがとう!!