データベース, テーブル, カラムの確認(SHOWコマンド)

どんなDBが存在し、どんなテーブルが存在するのか把握するには「SHOWコマンド」を利用します。ここでは、SHOWコマンドを利用して、データベース、テーブル、カラムの情報を確認する方法を紹介します。

DB一覧を表示
( SHOW DATABASES )

DB一覧を確認するには以下コマンドを利用します。

SHOW DATABASES [like_or_where]
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sample_db          |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

テーブル一覧を表示
( SHOW TABLES )

特定DBに存在するテーブル一覧を確認するには以下コマンドを利用します。

SHOW TABLES FROM データベース名 [like_or_where]
mysql> SHOW TABLES FROM information_schema LIKE "%INDEX%";
+----------------------------------------+
| Tables_in_information_schema (%INDEX%) |
+----------------------------------------+
| INNODB_CMP_PER_INDEX                   |
| INNODB_SYS_INDEXES                     |
| INNODB_CMP_PER_INDEX_RESET             |
| INNODB_FT_INDEX_TABLE                  |
| INNODB_FT_INDEX_CACHE                  |
+----------------------------------------+
5 rows in set (0.00 sec)

DBに接続してから、接続中のDBに存在するテーブルを確認するには以下のようにします。

mysql> USE information_schema;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SHOW TABLES LIKE "%INDEX%";
+----------------------------------------+
| Tables_in_information_schema (%INDEX%) |
+----------------------------------------+
| INNODB_CMP_PER_INDEX                   |
| INNODB_SYS_INDEXES                     |
| INNODB_CMP_PER_INDEX_RESET             |
| INNODB_FT_INDEX_TABLE                  |
| INNODB_FT_INDEX_CACHE                  |
+----------------------------------------+
5 rows in set (0.00 sec)

テーブルのカラムを表示
( SHOW COLUMNS )

特定テーブルを構成するカラムを確認するには以下コマンドを利用します。

SHOW COLUMNS FROM テーブル名 FROM データベース名 [like_or_where]
mysql> SHOW COLUMNS FROM slow_log FROM mysql;
+----------------+---------------------+------+-----+----------------------+--------------------------------+
| Field          | Type                | Null | Key | Default              | Extra                          |
+----------------+---------------------+------+-----+----------------------+--------------------------------+
| start_time     | timestamp(6)        | NO   |     | CURRENT_TIMESTAMP(6) | on update CURRENT_TIMESTAMP(6) |
| user_host      | mediumtext          | NO   |     | NULL                 |                                |
| query_time     | time(6)             | NO   |     | NULL                 |                                |
| lock_time      | time(6)             | NO   |     | NULL                 |                                |
| rows_sent      | int(11)             | NO   |     | NULL                 |                                |
| rows_examined  | int(11)             | NO   |     | NULL                 |                                |
| db             | varchar(512)        | NO   |     | NULL                 |                                |
| last_insert_id | int(11)             | NO   |     | NULL                 |                                |
| insert_id      | int(11)             | NO   |     | NULL                 |                                |
| server_id      | int(10) unsigned    | NO   |     | NULL                 |                                |
| sql_text       | mediumblob          | NO   |     | NULL                 |                                |
| thread_id      | bigint(21) unsigned | NO   |     | NULL                 |                                |
+----------------+---------------------+------+-----+----------------------+--------------------------------+
12 rows in set (0.01 sec)

カラムのコメントも表示するには以下のように FULL をつけます。

SHOW FULL COLUMNS FROM テーブル名 FROM データベース名 [like_or_where]