MySQL でテーブル定義情報を表示する方法。
MySQL でテーブル定義情報を表示する方法を記載する。
MySQL のバージョン。
mysql> SELECT VERSION(); +-----------+ | version() | +-----------+ | 8.0.34 | +-----------+ 1 row in set (0.00 sec)
テーブル内のカラムに関する情報を表示する方法
DESCRIBE ステートメント
DESCRIBE <テーブル名> を実行すると、指定したテーブルのカラムに関する情報を表示できる。
mysql> DESCRIBE servers; +-------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------+------+-----+---------+----------------+ | ID | int | NO | PRI | NULL | auto_increment | | Name | char(35) | NO | | | | | CountryCode | char(3) | NO | MUL | | | | District | char(20) | NO | | | | | Population | int | NO | | 0 | | +-------------+----------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)
DESCRIBE の省略系の DESC もある ((DESC ステートメント自体が SHOW COLUMNS ステートメントのシノニムである))
DESC のほうがタイプ数が少なくて済むので、普段使いするにはこちらのほうが楽だろう。
後述する SHOW CREATE TABLE とは違い、テーブルの制約やパーティションに関する情報は表示されないが、カラムに関する情報を得るだけならばこちらで十分ではある。
SHOW CREATE TABLE ステートメント
SHOW CREATE TABLE <テーブル名> を実行すると、指定したテーブルを作成する CREATE TABLE ステートメントを表示できる。
DESCRIBE ステートメントはテーブルのカラムに関する情報のみを得られたが、こちらはテーブルの制約やパーティションに関する情報を得ることができる。
また、任意のテーブルと同じ構造のテーブルを別名で作成したい、といったときにはこちらのほうが楽だろう。
mysql> SHOW CREATE TABLE city; | Table | Create Table | | city | CREATE TABLE `city` ( `ID` int NOT NULL AUTO_INCREMENT, `Name` char(35) NOT NULL DEFAULT '', `CountryCode` char(3) NOT NULL DEFAULT '', `District` char(20) NOT NULL DEFAULT '', `Population` int NOT NULL DEFAULT '0', PRIMARY KEY (`ID`), KEY `CountryCode` (`CountryCode`), CONSTRAINT `city_ibfk_1` FOREIGN KEY (`CountryCode`) REFERENCES `country` (`Code`) ) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | 1 row in set (0.00 sec)