どんな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]