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

現在使用中とは別のMySQLデータベース内のテーブル一覧とテーブルタイプを確認する方法

現在接続しているデータベースとは別のデータベースに存在するテーブルの一覧と、それぞれのテーブルタイプ(実テーブルかビューか)を確認したい場合は、SHOW FULL TABLES ステートメントを使用します。

基本構文

SHOW FULL TABLES IN db_name

db_name の部分には、テーブル一覧を表示したいデータベース名を指定します。

実行例

たとえば、現在「query」というデータベースに接続している状態で、「mysql」データベース内のテーブル一覧とテーブルタイプを確認するには、次のように実行します。

mysql> SHOW FULL TABLES IN 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)

結果の見方

出力結果は2つのカラムで構成されています。

  • Tables_in_mysql:指定したデータベース(この場合は mysql)内のテーブル名
  • Table_type:テーブルの種類。「BASE TABLE」は通常の実テーブル、「VIEW」はビューを表します

補足:特定のテーブルタイプだけを抽出する

ビューだけ、または実テーブルだけを確認したい場合は、INFORMATION_SCHEMA.TABLES を参照すると便利です。

SELECT TABLE_NAME, TABLE_TYPE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'mysql'
  AND TABLE_TYPE = 'VIEW';

このように WHERE 句で TABLE_TYPE を絞り込むことで、目的の種類のテーブルだけを効率的に一覧できます。

  1. MySQLで現在のデータベース以外のテーブル一覧を確認する方法

    MySQLでは、現在使用中のデータベースとは別のデータベースに存在するテーブルを簡単に確認できます。そのために利用するのが「SHOW TABLES FROM」ステートメントです。基本構文Show Tables from Database_name;「Database_name」の部分に、テーブル一覧を確認したいデータベース名を指定するだけで、現在選択中のデータベースを切り替えることなく、対象のデータベース内のテーブルを一覧表示できます。実行例例えば、現在「new」というデータベースを使用している状態で、「gaurav」という別のデータベースのテーブル一覧を表示したい場合は、以下のようにクエリを

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

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