MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

【MySQL】別のデータベースのテーブル一覧とテーブルタイプを確認する方法

現在接続中のデータベースとは別のデータベースに存在するテーブルの一覧を、テーブルタイプ(BASE TABLE や VIEW など)とともに確認したい場合は、SHOW FULL TABLES ステートメントを使用します。

基本構文

SHOW FULL TABLES FROM db_name

ここで db_name には、テーブル一覧を表示したい対象データベースの名前を指定します。FROM 句にデータベース名を明示することで、現在選択しているデータベースに関係なく、任意のデータベース内のテーブル情報を取得できます。

実行例

たとえば、現在「query」という名前のデータベースを使用している状態で、以下の MySQL クエリを実行すると、「mysql」データベースに含まれるテーブルの一覧と、それぞれのテーブルタイプが結果セットとして表示されます。

mysql> SHOW FULL TABLES FROM mysql;
+---------------------------+------------+
| Tables_in_mysql           | Table_type |
+---------------------------+------------+
| arena                     | BASE TABLE |
| arena1                    | BASE TABLE |
| columns_priv              | BASE TABLE |
| dates                     | VIEW       |
| dates1                    | VIEW       |
| db                        | BASE TABLE |
| digits                    | VIEW       |
| engine_cost               | BASE TABLE |
| event                     | BASE TABLE |
| func                      | BASE TABLE |
| general_log               | BASE TABLE |
| gtid_executed             | BASE TABLE |
| help_category             | BASE TABLE |
| help_keyword              | BASE TABLE |
| help_relation             | BASE TABLE |
| help_topic                | BASE TABLE |
| innodb_index_stats        | BASE TABLE |
| innodb_table_stats        | BASE TABLE |
| ndb_binlog_index          | BASE TABLE |
| numbers                   | VIEW       |
| plugin                    | BASE TABLE |
| proc                      | BASE TABLE |
| procs_priv                | BASE TABLE |
| proxies_priv              | BASE TABLE |
| server_cost               | BASE TABLE |
| servers                   | BASE TABLE |
| slave_master_info         | BASE TABLE |
| slave_relay_log_info      | BASE TABLE |
| slave_worker_info         | BASE TABLE |
| slow_log                  | BASE TABLE |
| tables_priv               | BASE TABLE |
| test_date                 | BASE TABLE |
| time_zone                 | BASE TABLE |
| time_zone_leap_second     | BASE TABLE |
| time_zone_name            | BASE TABLE |
| time_zone_transition      | BASE TABLE |
| time_zone_transition_type | BASE TABLE |
| user                      | BASE TABLE |
+---------------------------+------------+
38 rows in set (0.01 sec)

ポイント

  • 結果セットの「Table_type」列には、通常のテーブルを表す BASE TABLE と、ビューを表す VIEW のいずれかが表示されます。
  • このステートメントを実行するには、対象データベースへの参照権限が必要です。
  • テーブル名だけを確認したい場合は、FULL を付けない「SHOW TABLES FROM db_name」でも同様に利用できます。
  1. MySQLの一時テーブルはSHOW TABLESで確認できる?テーブル一覧に表示されない理由と対処法

    ご存じのとおり、SHOW TABLESステートメントを使えば、データベース内のテーブル一覧を簡単に確認できます。しかし、MySQLの一時テーブル(TEMPORARY TABLE)は、このリストには表示されません。言い換えると、SHOW TABLESステートメントでは一時テーブルを確認できないということです。以下の例で具体的に見ていきましょう。例:SHOW TABLESで一時テーブルを検索するここでは、「SalesSummary」という名前の一時テーブルをSHOW TABLESステートメントで取得しようとしています。mysql> SHOW TABLES LIKE %Sales%; Empt

  2. MySQLでINFORMATION_SCHEMA.TABLESを使ってテーブルの存在を確認する方法

    INFORMATION_SCHEMA.TABLESとはMySQLでデータベース内に特定のテーブルがすでに存在するかどうかを確認したい場合、INFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、データベースやテーブルなどのメタ情報を管理する特殊なスキーマであり、そこに対してクエリを実行することで、目的のテーブルが存在するかどうかを簡単に調べられます。基本構文SELECT TABLE_NAMEFROM INFORMATION_SCHEMA.TABLESWHERE TABLE_SCHEMA = yourDatabaseNameAND TAB