以下は、SQLまたはコマンドラインを使用してMySQLデータベースのテーブルを一覧表示する4つの方法です。
SHOW TABLES コマンド
SHOW TABLES コマンドは非TEMPORARYをリストします 特定のデータベースのテーブルとビュー:
SHOW TABLES; 結果:
+-----------------+ | Tables_in_music | +-----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +-----------------+
これにより、現在のデータベース内のすべてのテーブルが一覧表示されます。これは、Musicと呼ばれます。 。
FULLも使用できます タイプを表示する2番目の列を返す修飾子:
SHOW FULL TABLES; 結果:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | | valbumsartists | VIEW | | valbumsgenres | VIEW | | vallalbums | VIEW | | vallartists | VIEW | | vallgenres | VIEW | +-----------------+------------+
ここにリストされている結果のほとんどは実際にはビューであることがわかります。
ベーステーブルのみを返す場合は、WHEREを使用できます。 Table_typeに対する句 列:
SHOW FULL TABLES
WHERE Table_type = 'BASE TABLE'; 結果:
+-----------------+------------+ | Tables_in_music | Table_type | +-----------------+------------+ | Albums | BASE TABLE | | Artists | BASE TABLE | | Genres | BASE TABLE | +-----------------+------------+
SHOW TABLES LIKEも受け入れます 特定のパターンに一致するテーブルのみに結果を絞り込むために使用できる句:
SHOW TABLES
LIKE 'a%'; 結果:
+----------------------+ | Tables_in_music (a%) | +----------------------+ | Albums | | Artists | +----------------------+
この場合、文字aで始まるすべてのテーブルを返しました。 。
SHOW TABLE STATUS コマンド
SHOW TABLE STATUS コマンドはSHOW TABLESに似ています コマンドですが、それぞれに関するより広範な情報を提供します(TEMPORARY以外 ) テーブル。
WHEREも受け入れます およびLIKE SHOW TABLESのような句 。
例:
SHOW TABLE STATUS
LIKE 'a%'; 結果:
+---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+ | Albums | InnoDB | 10 | Dynamic | 20 | 819 | 16384 | 0 | 32768 | 0 | 21 | 2022-02-15 09:10:36 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | | Artists | InnoDB | 10 | Dynamic | 16 | 1024 | 16384 | 0 | 0 | 0 | 17 | 2021-11-13 12:56:02 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | | | +---------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
information_schema.TABLES 表
information_schema.TABLESをクエリすることもできます 表:
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA LIKE 'Music' AND TABLE_TYPE LIKE 'BASE_TABLE'; 結果:
+------------+ | TABLE_NAME | +------------+ | Artists | | Genres | | Albums | +------------+
TABLE_SCHEMAで結果をフィルタリングせずにこれをクエリする すべてのデータベースからテーブルを返します。同様に、TABLE_TYPEでフィルタリングせずにクエリを実行します すべてのテーブルタイプを返します。
mysqlshow クライアント
これを行う別の方法は、mysqlshowを使用することです。 効用。
このオプションを使用するには、コマンドラインプロンプト/ターミナルウィンドウを開き、次のコマンドを実行します(musicを置き換えます) 興味のあるデータベースを使用):
mysqlshow music; 結果:
+----------------+ | Tables | +----------------+ | Albums | | Artists | | Genres | | valbumsartists | | valbumsgenres | | vallalbums | | vallartists | | vallgenres | +----------------+
これにより、ビューとテーブルが返されます。
出力には、いくつかの特権を持っているデータベース、テーブル、または列の名前のみが表示されます。
データベースが指定されていない場合は、データベース名のリストが表示されます。テーブルが指定されていない場合、データベース内の一致するすべてのテーブルが表示されます。列が指定されていない場合は、テーブル内の一致するすべての列と列タイプが表示されます。
「アクセス拒否」エラーが発生した場合は、sudoを使用する必要がある場合があります 、プロンプトでパスワードを入力します:
sudo mysqlshow music;
このユーティリティは、--userなどのかなりの数のオプションを受け入れます (ユーザー名を渡すことができるように)、--password (パスワードを渡すことができるように)、--host MySQLサーバーが配置されているホストなど
オプションの完全なリストについては、MySQLのドキュメントを参照してください。