MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでテーブルのスキーマを表示・確認する方法|DESCRIBEとSHOW CREATE TABLEの使い方

MySQLでテーブルのスキーマ(構造)を確認するには、DESCRIBE(DESC)コマンドを使うのが最も手軽な方法です。このコマンドを実行すると、カラム名、データ型、NULLの許可、キーの有無、デフォルト値といったテーブル構造の情報を一覧形式で取得できます。

DESCRIBEコマンドの基本構文

DESCRIBE データベース名.テーブル名;

DESCRIBEの実行例

それでは、実際に上記の構文を使ってみましょう。ここでは「business」データベース内の「student」テーブルを対象とします。

mysql> DESCRIBE business.student;

実行すると、次のような出力が得られます。

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | YES  | MUL | NULL    |       |
| Name  | varchar(100) | YES  | MUL | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.05 sec)

各項目の意味は以下のとおりです。

  • Field:カラム名
  • Type:データ型(int(11)、varchar(100)など)
  • Null:NULL値を許可するかどうか
  • Key:インデックスの種類(PRI=主キー、MUL=複数インデックスの一部など)
  • Default:デフォルト値
  • Extra:auto_incrementなどの追加属性

SHOW CREATE TABLEで詳細なスキーマを確認する

カラム一覧だけでなく、ストレージエンジンや文字コード、インデックス定義まで含んだ完全なテーブル定義(CREATE TABLE文)を確認したい場合は、SHOW CREATE TABLEコマンドを使用します。

SHOW CREATE TABLE データベース名.テーブル名;

先ほどと同じ「student」テーブルに対して実行した例がこちらです。

mysql> show create table business.student;

実行結果として、実際のCREATE TABLE文が出力されます。

+---------+------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                     |
+---------+------------------------------------------------------------------------------------------------------------------+
| student | CREATE TABLE `student` (`id` int(11) DEFAULT NULL,
   `Name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
   KEY `NameStuIndex` (`Name`),
   KEY `idIndex` (`id`)
)  ENGINE = InnoDB 
   DEFAULT CHARSET = utf8mb4 
   COLLATE =                                                                                                        |
+---------+------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

使い分けのポイント


DESCRIBE:カラム名やデータ型を手軽にざっと確認したいときに便利
SHOW CREATE TABLE:エンジン、文字セット、照合順序、インデックスまで含む正確なテーブル定義が必要なときに便利

用途に応じてこの2つのコマンドを使い分けることで、MySQLのテーブル構造を効率よく把握できます。

  1. MySQLデータベース内の空のテーブルを確認する方法をわかりやすく解説

    データベース内のテーブルが空かどうかを確認するには、テーブルから実際にレコードを抽出してみる必要があります。テーブルにデータが存在する場合はレコードが返され、空の場合は「Empty set(空のセット)」が返されます。ここからは、サンプルテーブルを使いながら具体的な手順を見ていきましょう。1. テーブルを作成するまず、CREATE TABLE文でテーブルを作成します。mysql> create table DemoTable(Id int, Name varchar(100), Age int); Query OK, 0 rows affected (0.80 sec)2. レコードを挿

  2. MySQLでデータベース内のテーブル名一覧を取得する方法

    MySQLでデータベースに存在するテーブル名の一覧を取得したい場合は、SHOW TABLESステートメントを使用します。SQLクライアントやコマンドラインから手軽に実行でき、指定したデータベース内の全テーブルを簡単に確認できます。基本構文テーブル名を取得するための基本構文は以下のとおりです。show tables from yourDatabaseName;yourDatabaseName の部分に、対象となるデータベース名を指定してください。実行例それでは、サンプルデータベース「hb_student_tracker」に対して実際にクエリを実行し、テーブル名を取得してみましょう。mysql&g