【MySQL】SHOW FULL TABLESで現在のデータベースのテーブル一覧とテーブルタイプを確認する方法
現在接続しているデータベースに含まれるテーブルの一覧を取得しつつ、それぞれが実テーブルなのかビューなのかといったテーブルタイプも一緒に確認したい場合があります。そんなときは、SHOW FULL TABLES ステートメントを使うのが最も簡単な方法です。
構文
基本的な構文は非常にシンプルで、以下のように記述するだけです。
SHOW FULL TABLES
これだけで、カレントデータベース内のすべてのテーブルとビューが、タイプ情報付きで一覧表示されます。
使用例
次の例では、現在選択されているデータベースが query です。この状態で上記のステートメントを実行すると、このデータベースに存在するテーブルの一覧と、それぞれのテーブルタイプが結果セットとして返されます。
mysql> SHOW FULL TABLES; +-----------------------------+------------+ | Tables_in_query | Table_type | +-----------------------------+------------+ | accounts | BASE TABLE | | address | BASE TABLE | | cars | BASE TABLE | | cars_avgprice | VIEW | | countries | BASE TABLE | | customer_view | VIEW | | customers | BASE TABLE | | date_time_test | BASE TABLE | | detail_bday | BASE TABLE | | details_city | BASE TABLE | . . . | view_student_detail | VIEW | | view_student_detail_columns | VIEW | | websites | BASE TABLE | +-----------------------------+------------+ 87 rows in set (0.01 sec)
結果セットの見方
出力された結果セットには、2つの列が含まれています。
- Tables_in_データベース名: テーブルまたはビューの名前
- Table_type: オブジェクトの種類。
BASE TABLE(実際のテーブル)またはVIEW(ビュー)が表示される
このように、SHOW FULL TABLES を使えば、単なるテーブル一覧だけでなく、それが実テーブルなのかビューなのかも一目で判別できます。
応用:WHERE句で結果を絞り込む
LIKE 句や WHERE 句を組み合わせると、必要なオブジェクトだけを抽出することも可能です。
-- 名前に「customer」を含むテーブル・ビューのみ表示 mysql> SHOW FULL TABLES LIKE '%customer%'; -- ビューだけを表示したい場合 mysql> SHOW FULL TABLES WHERE Table_type = 'VIEW'; -- 実テーブルだけを表示したい場合 mysql> SHOW FULL TABLES WHERE Table_type = 'BASE TABLE';
大量のテーブルが存在するデータベースでは、このように条件を指定して絞り込むことで、目的のオブジェクトを素早く見つけられます。
-
MySQLの一時テーブルはSHOW TABLESで確認できる?テーブル一覧に表示されない理由と対処法
ご存じのとおり、SHOW TABLESステートメントを使えば、データベース内のテーブル一覧を簡単に確認できます。しかし、MySQLの一時テーブル(TEMPORARY TABLE)は、このリストには表示されません。言い換えると、SHOW TABLESステートメントでは一時テーブルを確認できないということです。以下の例で具体的に見ていきましょう。例:SHOW TABLESで一時テーブルを検索するここでは、「SalesSummary」という名前の一時テーブルをSHOW TABLESステートメントで取得しようとしています。mysql> SHOW TABLES LIKE %Sales%; Empt
-
MySQLでINFORMATION_SCHEMA.TABLESを使ってテーブルの存在を確認する方法
INFORMATION_SCHEMA.TABLESとはMySQLでデータベース内に特定のテーブルがすでに存在するかどうかを確認したい場合、INFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、データベースやテーブルなどのメタ情報を管理する特殊なスキーマであり、そこに対してクエリを実行することで、目的のテーブルが存在するかどうかを簡単に調べられます。基本構文SELECT TABLE_NAMEFROM INFORMATION_SCHEMA.TABLESWHERE TABLE_SCHEMA = yourDatabaseNameAND TAB