この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
目次
MySQLのテーブル定義(カラム)の確認
MySQLにてテーブル定義(カラム)を確認するコマンドをご紹介します。
データベース定義書が残っていれば良いのですが、現実には「現存のシステムが仕様書です!」ということも多いので利用頻度は多めなコマンドではないでしょうか。
テーブル定義(カラム)の確認方法
MySQLのテーブル定義の確認方法は主に4つあります。
DESC(DESCRIBE) / EXPLAIN / SHOW COLUMNS
「DESC」コマンドは、「DESCRIBE」の短縮形です。
文字数が少ないため打ち込みやすく、テーブル定義を確認するときに良く使われるコマンドです。「EXPLAIN」と「SHOW COLUMNS」のコマンドも下記の記述を行うと、「DESC」と同じくテーブル構造を提供します。
DESC 
(テーブル名);EXPLAIN 
(テーブル名);SHOW COLUMNS FROM 
(テーブル名);サンプルの実行結果
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | MySQL [root]> DESC `hogehoge`; +---------------+--------------+------+-----+---------+----------------+ | Field         | Type         | Null | Key | Default | Extra          | +---------------+--------------+------+-----+---------+----------------+ | id            | int(11)      | NO   | PRI | NULL    | auto_increment | | user_id       | int(11)      | YES  |     | NULL    |                | | name          | varchar(512) | YES  |     | NULL    |                | | create_date   | datetime     | YES  |     | NULL    |                | | update_date   | datetime     | YES  |     | NULL    |                | +---------------+--------------+------+-----+---------+----------------+ 5 rows in set (0.04 sec) MySQL [root]> EXPLAIN `hogehoge`; +---------------+--------------+------+-----+---------+----------------+ | Field         | Type         | Null | Key | Default | Extra          | +---------------+--------------+------+-----+---------+----------------+ | id            | int(11)      | NO   | PRI | NULL    | auto_increment | | user_id       | int(11)      | YES  |     | NULL    |                | | name          | varchar(512) | YES  |     | NULL    |                | | create_date   | datetime     | YES  |     | NULL    |                | | update_date   | datetime     | YES  |     | NULL    |                | +---------------+--------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) MySQL [root]> SHOW COLUMNS FROM `hogehoge`; +---------------+--------------+------+-----+---------+----------------+ | Field         | Type         | Null | Key | Default | Extra          | +---------------+--------------+------+-----+---------+----------------+ | id            | int(11)      | NO   | PRI | NULL    | auto_increment | | user_id       | int(11)      | YES  |     | NULL    |                | | name          | varchar(512) | YES  |     | NULL    |                | | create_date   | datetime     | YES  |     | NULL    |                | | update_date   | datetime     | YES  |     | NULL    |                | +---------------+--------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) | 
SHOW CREATE TABLE
対象のテーブルと全く同じテーブルを作成するためにコマンドです。
SHOW CREATE TABLE  
(テーブル名);サンプルの実行結果
| 1 2 3 4 5 6 7 8 9 10 11 | MySQL [root]> SHOW CREATE TABLE  `hogehoge`; (省略) | hogehoge  | CREATE TABLE `hogehoge` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `user_id` int(11) DEFAULT NULL,   `name` varchar(512) DEFAULT NULL,   `create_date` datetime DEFAULT NULL,   `update_date` datetime DEFAULT NULL,   PRIMARY KEY (`id`), ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 (省略) | 
さいごに
MySQLは、需要の多い機能は複数のコマンドで同一の機能を提供しています。
MySQL公式サイトには「DESCRIBE ステートメントと EXPLAIN ステートメントはシノニム」との記述があったり、同一機能を提供するコマンドを提供しています。お手すきのときは、MySQL公式サイトを閲覧して同一のコマンドを見てみると新しい発見があるかもしれませんね。
ウェブプログラミングについては下記の本も参考になるので、スキルアップにお役立てください。



