MySQLのテーブル一覧を表示して確認する

MySQLのテーブル一覧を表示して確認する

Table of Contents

MySQLのテーブル一覧を表示するには、SHOW TABLESステートメントを使います。
SHOW TABLESステートメントは特定データベース内のTEMPORARY以外のテーブルを一覧表示します。
また、ビューも一覧表示します。

MySQLのSHOW TABLESステートメントの構文

SHOW [FULL] TABLES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]

[]は任意で、{|}はどちらかを選択になります。
{FROM | IN}であればFROMINどちらかを使えます。

SHOW TABLESの実行例

USEステートメントでDBhoge_developmentを選択したのちにSHOW TABLESを実行してます。

mysql> show tables;
+---------------------------------+
| Tables_in_hoge_development      |
+---------------------------------+
| active_admin_comments           |
| active_storage_attachments      |
| active_storage_blobs            |
| ar_internal_metadata            |
| schema_migrations               |
| hoges                           |
| tokens                          |
| users                           |
+---------------------------------+
8 rows in set (0.00 sec)

SHOW TABLESのLIKE句で表示テーブルを絞る

構文内にあるLIKE句を使うことで表示テーブルを選択できます。
先程のテーブル名から先頭にactive と入るテーブル名を選択する場合は次のようになります。

mysql> show tables like 'active_%';
+--------------------------------------------+
| Tables_in_hoge_development (active_%)      |
+--------------------------------------------+
| active_admin_comments                      |
| active_storage_attachments                 |
| active_storage_blobs                       |
+--------------------------------------------+
3 rows in set (0.00 sec)

SHOW TABLESのFULL修飾子でテーブルタイプを追加表示する

構文内にあるFULL装飾子がついたSHOW FULL TABLESを使うことで出力カラムにテーブルタイプを表示します。

mysql> show full tables;
+---------------------------------+------------+
| Tables_in_hoge_development      | Table_type |
+---------------------------------+------------+
| active_admin_comments           | BASE TABLE |
| active_storage_attachments      | BASE TABLE |
| active_storage_blobs            | BASE TABLE |
| ar_internal_metadata            | BASE TABLE |
| schema_migrations               | BASE TABLE |
| hoges                           | BASE TABLE |
| tokens                          | BASE TABLE |
| users                           | BASE TABLE |
+---------------------------------+------------+
8 rows in set (0.00 sec)

テーブルタイプ(Table_type)の値は、テーブルかビューで変わります。

  • テーブルはBASE TABLE
  • ビューはVIEW

SHOW TABLESをWHERE句で表示テーブルを絞る

構文内にあるWHERE句を使うことで表示テーブルを選択できます。
先程のテーブル名からusersテーブルを選択する場合は次のようになります。

mysql> show tables where Tables_in_hoge_development = 'users';
+---------------------------------+
| Tables_in_hoge_development      |
+---------------------------------+
| users                           |
+---------------------------------+
1 row in set (0.00 sec)

また、FULL装飾子をつけてテーブルタイプ(Table_type)を追加すれば、同様に条件として使えます。

注意: SHOW TABLESは権限がない場合は表示されない

テーブルやビューに対する権限を持っていない場合は、SHOW TABLESの結果に表示されません。

MySQLのmysqlshowコマンドでも取得可能

ターミナル上でmysqlshowコマンドを実行することで、同様にMySQLのテーブル一覧を表示できます。

$ mysqlshow -uroot hoge_development
Database: hoge_development
+----------------------------+
|           Tables           |
+----------------------------+
| active_admin_comments      |
| active_storage_attachments |
| active_storage_blobs       |
| ar_internal_metadata       |
| schema_migrations          |
| hoges                      |
| tokens                     |
| users                      |
+----------------------------+

ただし、SHOW TABLES のようにLIKEWHERE句は使えません。

このエントリーをはてなブックマークに追加