MySQL のテーブル一覧は SHOW TABLES で出せます。先にデータベースを選んでおく必要があります。この記事の出力は MySQL 8.4.6 で採りました。
まず見る(結論)
USE データベース名;の後にSHOW TABLES;- 選ばずに見るなら
SHOW TABLES FROM データベース名; - ビューと区別するなら
SHOW FULL TABLES; - サイズや行数も見るなら
information_schema.tables
SHOW TABLES
データベースを選ばずに実行すると、ERROR 1046 になります。
mysql> SHOW TABLES;
ERROR 1046 (3D000): No database selected
USE で選んでから実行します。
mysql> USE sugdb;
mysql> SHOW TABLES;
+-----------------+
| Tables_in_sugdb |
+-----------------+
| customers |
| orders |
| v_orders |
+-----------------+
v_orders はビューですが、表と同じように並びます。区別したいときは FULL を付けます。
mysql> SHOW FULL TABLES;
+-----------------+------------+
| Tables_in_sugdb | Table_type |
+-----------------+------------+
| customers | BASE TABLE |
| orders | BASE TABLE |
| v_orders | VIEW |
+-----------------+------------+
別のデータベース・名前で絞る
FROM でデータベースを指定すると、USE しなくても見られます。LIKE で名前を絞れます(% は任意の文字列)。
mysql> SHOW TABLES FROM mysql LIKE 'time%';
+---------------------------+
| Tables_in_mysql (time%) |
+---------------------------+
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
+---------------------------+
コマンドラインから1行で出すなら mysql -u root -p -e "SHOW TABLES" sugdb のように、最後にデータベース名を付けます。
information_schema.tables でサイズや行数も出す
mysql> SELECT table_name, table_type, engine, table_rows,
-> ROUND((data_length + index_length) / 1024 / 1024, 2) AS mb
-> FROM information_schema.tables
-> WHERE table_schema = 'sugdb';
+------------+------------+--------+------------+------+
| TABLE_NAME | TABLE_TYPE | ENGINE | TABLE_ROWS | mb |
+------------+------------+--------+------------+------+
| customers | BASE TABLE | InnoDB | 5 | 0.02 |
| orders | BASE TABLE | InnoDB | 5 | 0.03 |
| v_orders | VIEW | NULL | NULL | NULL |
+------------+------------+--------+------------+------+
InnoDB の TABLE_ROWS は統計からの見積もりで、正確な件数ではありません。行数が多い表では SELECT COUNT(*) と大きく違うことがあります。正確な数が要るときは COUNT(*) を使います。
table_schema の条件を外すと、全データベースの表が出ます。mysql、sys、information_schema、performance_schema はシステム用です。自分の表だけを見るなら WHERE table_schema NOT IN (...) で除きます。
関連
- 表の定義(列と型)を見るなら
DESCRIBE 表名;かSHOW CREATE TABLE 表名\G。\Gについては MySQLの\Gで結果を縦に表示する を参照 - PostgreSQL での方法は PostgreSQLでテーブル一覧を表示する