MySQLテーブルのカラム名を取得する方法【SHOW・DESCRIBE活用ガイド】
SHOWコマンドでカラム名を取得する
MySQLでは、SHOWコマンドを使うことで、テーブルのカラム(列)名を簡単に確認できます。カラム名だけでなく、データ型やNULL許可、キー情報なども一緒に取得できるのが特徴です。
基本構文
show columns from テーブル名;
サンプルテーブルの作成
まず、動作確認用に「DemoTable」というテーブルを作成します。
mysql> create table DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName varchar(20),
StudentLastName varchar(20),
StudentAge int,
StudentAddress varchar(200)
);
Query OK, 0 rows affected (0.54 sec)カラム名を取得するクエリの実行例
DemoTableのカラム名を取得するには、次のクエリを実行します。
mysql> show columns from DemoTable;
実行すると、以下のような結果が出力されます。
+------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentFirstName | varchar(20) | YES | | NULL | | | StudentLastName | varchar(20) | YES | | NULL | | | StudentAge | int(11) | YES | | NULL | | | StudentAddress | varchar(200) | YES | | NULL | | +------------------+--------------+------+-----+---------+----------------+ 5 rows in set (0.01 sec)
このように、「Field」列に各カラム名が表示され、「Type」列でデータ型、「Key」列で主キー(PRI)などの情報も同時に確認できます。
補足:DESCRIBE文でも同じ結果が得られる
DESCRIBE文(省略形はDESC)を使っても、SHOW COLUMNSとまったく同じ情報を取得できます。より短く書けるため、日常的な確認作業ではこちらがよく使われます。
mysql> describe DemoTable; -- または mysql> desc DemoTable;
カラム名だけを一覧で取得したい場合
型やキー情報は不要で、カラム名の一覧だけが必要な場合は、INFORMATION_SCHEMAを参照する方法が便利です。
mysql> SELECT COLUMN_NAME
-> FROM INFORMATION_SCHEMA.COLUMNS
-> WHERE TABLE_SCHEMA = 'データベース名'
-> AND TABLE_NAME = 'DemoTable';用途に応じてこれらのコマンドを使い分けることで、テーブル構造の確認を効率的に行えます。
-
【MySQL入門】テーブルのストレージエンジン(MyISAM/InnoDB)を確認する方法
MySQLテーブルのストレージエンジンを確認するには? MySQLのテーブルがMyISAMとInnoDBのどちらのストレージエンジンを使用しているかを調べたいときは、SHOW TABLE STATUSステートメントを使います。このコマンドを実行すると、テーブル名・エンジンの種類・行数・作成日時などの詳細情報を一覧形式で取得でき、結果の「Engine」列を見ることでエンジンの種類をすぐに判別できます。 データベース内の全テーブルのエンジンを表示する構文 複数のテーブル(データベース内のすべてのテーブル)の情報を一度に確認したい場合は、次の構文を使用します。 SHOW TABLE STATUS
-
MySQLで一時テーブルの列(カラム)を一覧表示する方法
MySQLで一時テーブル(TEMPORARY TABLE)の列を一覧表示するには、まず対象となる一時テーブルを作成しておく必要があります。ここでは例として、学生の詳細情報を格納する複数の列を持つ一時テーブルを作成してみましょう。mysql> CREATE TEMPORARY TABLE DemoTable745 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(100), StudentAge int, StudentAddress varchar(100),