sql >> データベース >  >> RDS >> Mysql

MySQLデータベース内のすべてのテーブルを一覧表示する4つの方法

    以下は、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のドキュメントを参照してください。


    1. 1回のクエリで複数のarray_agg()を呼び出す

    2. SQL ServerのDateTimeオブジェクトをBIGINT(.Netティック)に変換します

    3. Postgresを使用して一度に3つのテーブルにデータを挿入します

    4. SQLServer2008のリードラグ機能の代替