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