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}
であればFROM
かIN
どちらかを使えます。
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
のようにLIKE
やWHERE
句は使えません。