MySQL のテーブルの一覧を取得する
ここでは MySQL でデータベース内のテーブル一覧を取得する方法をご説明します。
SHOW TABLES でテーブル一覧を取得する
MySQL の SHOW TABLES 文を使うと、データベース内のテーブルの一覧を取得することができます。
SHOW TABLES; とだけ実行すると、今選択されているデータベースのテーブルの一覧が取得できます。
例えば、school_db データベースを選択した状態で SHOW TABLES; を実行すると以下のようになります。
SHOW TABLES;
[実行結果]
他のデータベースのテーブル一覧を取得したい時は SHOW TABLES FROM データベース名; のように指定して取得できます。
例えば、school_db データベースを選択した状態で test データベースのテーブル一覧を取得したい時は次のようにできます。
SHOW TABLES FROM test;
[実行結果]
指定した文字を含むテーブルだけを取得したい時は SHOW TABLE LIKE 'pattern'; を使って取得することができます。
例えば、school_db データベース内で、テーブル名が exam で始まるテーブルのみを取得したい場合は次のようにできます。
SHOW TABLES LIKE 'exam%';
[実行結果]
INFORMATION_SCHEMA.TABLES でテーブル一覧を取得する
MySQL の INFORMATION_SCHEMA.TABLES システムビューからも、テーブルの一覧を取得することができます。
INFORMATION_SCHEMA.TABLES には、次のようにシステム用のテーブルやビューも含まれます。
データベースを指定するには TABLE_SCHEMA = 'データベース名' のようにフィルターします。
ビューではなく、テーブルのみを取得するには TABLE_TYPE = 'BASE TABLE' のレコードを取得します。
例えば、INFORMATION_SCHEMA.TABLES から school_db データベースのテーブル一覧を取得するには次のようにできます。
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'school_db'
AND TABLE_TYPE = 'BASE TABLE';
[実行結果]
TABLE_NAME カラムがテーブルの名前です。
以上、MySQL でデータベース内のテーブルの一覧を取得する方法ご説明しました。