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

MySQLサーバーでテーブルを表示するさまざまな方法

    MySQLでテーブルを表示するには、主に2つの方法があります。

    1. MYSQL SHOW コマンド。
    2. Information_schema.tablesのクエリ テーブル。

    この記事では、両方について説明します。

    MySQLSHOWTABLESコマンド

    show Tablesコマンドは、データベースに作成されたすべてのテーブルのリストを表示します。構文は次のとおりです。

    SHOW [EXTENDED] | [FULL] TABLES
        [{FROM} database_name]
        [LIKE 'DBNamePattern']
    

    構文では、

    1. 修飾子 :次のオプションのいずれかを使用して、テーブルを表示できます。
      1. 拡張– このオプションは、失敗したALTERTABLEステートメントによって作成されたテーブルのリストを作成します。
      2. フル– このオプションは、テーブルのタイプを提供する追加の列を表示します。ベーステーブル、ビュー、またはシステムビューにすることができます。
    2. FROM –特定のテーブルからテーブルのリストを作成する場合は、FROMキーワードを使用できます。
    3. いいね –テーブルのリストに名前に特定のパターンを入力する場合は、LIKEキーワードを使用できます。

    例を見てみましょう。

    例1:特定のデータベースで作成されたすべてのテーブルを表示する

    Sakilaで作成されたすべてのMySQLテーブルを表示するには データベースでは、FULL修飾子とFROMキーワードを使用します。次のコマンドを実行します:

    mysql> SHOW TABLES FROM sakila;

    出力

    ご覧のとおり、クエリは Sakilaのテーブルのリストに入力されました データベース。

    例2:テーブルのリストに特定のキーワードパターンを入力する

    名前がキーワードfilmで始まるテーブルのリストを取得するとします。 。パターンに一致させるためにLIKEキーワードを使用しています。

    ただし、 LIKEを使用する場合 キーワード、 FROMは使用できません 修飾子。クエリは次のとおりです。

    use sakila;
    SHOW TABLES like 'film%'
    

    出力

    例3:テーブルのリストにそのタイプを入力する

    テーブルのリストにそのタイプを入力するには、 FULLを使用できます。 修飾子。 Sakilaデータベースで作成されたタイプのテーブルのリストを取得するとします。次のクエリを参照してください:

    mysql> SHOW FULL TABLES FROM sakila;

    出力

    それでは、 information_schema.tablesからテーブルのリストを作成しましょう。

    Information_schema.tablesテーブルのクエリ

    MySQLテーブルを表示するには、 information_schema.tablesを使用できます。 次の情報を含むテーブル:

    • Table_Schema :テーブルが作成されたデータベースまたはスキーマの名前。
    • Table_name: テーブルの名前。
    • Table_type: テーブルのタイプ。次のいずれかになります。
      • システムビュー: システムビューのリスト。データベースの内部詳細の情報が含まれています。これらのビューは、複数のベーステーブルとデータベース情報を組み合わせて作成されます。
      • ベーステーブル: ベーステーブルのリストは、ユーザーテーブルまたはシステムテーブルにすることができます。
      • 表示: ユーザー定義のビューのリスト。
    • エンジン :テーブルが作成されたデータベースエンジンの名前。
    • バージョン .frmのバージョン番号 テーブルのファイル。
    • Row_format :行ストレージの形式。行ストレージの形式は、次のいずれかになります。
      • 修正済み
      • 圧縮
      • 冗長
      • 動的
      • コンパクト
    • Table_rows :テーブル内の行数。 InnoDBテーブルを使用している場合は、推定行数が返されます。正確な行数を取得するには、 SELECT COUNT(*)を使用します クエリ。
    • Avg_row_length :データファイルの平均行長。
    • Data_length :MyISAMテーブルを使用している場合、 data_lengthの値 columnは、データファイルの長さです。 InnoDBテーブルを使用している場合、 Data_lengthの値 columnは、クラスター化インデックスに割り当てられたサイズにInnoDBページサイズを掛けたものです。
    • Max_data_length: データファイルの最大許容長。これは、テーブルに格納できるバイト数です。
    • Index_length: インデックスの長さ。 MyISAMテーブルを使用している場合、 index_lengthの値 列はインデックスのサイズを示します。 InnoDBテーブルを使用している場合、 index_lengthの値 columnは、クラスター化されていないすべてのインデックスの合計サイズにページサイズを掛けたものです。
    • Data_free :割り当てられているが未使用のバイトの総数。 InnoDBテーブルを使用している場合、 data_freeの値 列は、テーブルが作成されたテーブルスペースの未使用スペースです。
    • Auto_increment: Auto_incrementの値 列は次の自動インクリメント値です。
    • Create_time :テーブルが作成された日時。データベースを復元するとき、 create_dateの値 データベースが復元された時刻になります。
    • Update_time :データファイルが更新された日時。 InnoDBテーブルで実行された最後のINSERT、UPDATE、またはDELETEステートメントのタイムスタンプが表示されます。
    • Check_Time: テーブルが最後にチェックされた日時。
    • Table_collat​​ion :テーブルのデフォルトの照合の名前。
    • チェックサム :チェックサム値。
    • Create_Option :テーブルの作成に使用された追加の構成オプション。
    • Table_comment :テーブルの作成中に使用されたコメントまたは情報。

    例1:すべてのテーブルのリストを作成する

    すべてのデータベースで作成されたすべてのテーブルにデータを入力するとします。クエリは次のとおりです。

    mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables;

    出力

    ご覧のとおり、クエリはテーブルのリストにデータベース名と作成時間を入力しました。クエリは多くのレコードを返したため、出力はトリミングされます。

    例2:特定のデータベースで作成されたすべてのテーブルのリストを作成する

    Sakilaで作成されたテーブルのリストを作成します データベースの場合、 Table_Schemaにフィルターを適用できます。 列:

    mysql> select table_catalog, table_schema, table_name,table_type,create_time from information_schema.tables WHERE table_schema='sakila';

    出力

    ご覧のとおり、クエリはSakilaデータベースで作成されたテーブルとビューのリスト、その作成時間、およびタイプを返しました。

    例3:すべてのテーブルのリストに行数を入力する

    Table_rowsを含めることができます MySQLテーブルの行数を表示する列。名前がfilmで始まるテーブルのリストを取得するとします。 。出力には、これらのテーブル内のレコード数が含まれている必要があります。

    mysql> select table_catalog, table_schema, table_name,table_type,table_rows from information_schema.tables WHERE table_schema='sakila' and table_name like 'film%' and table_type='BASE TABLE';

    出力

    例4:テーブルとビューの数を入力する

    たとえば、データベースに作成されたテーブルとビューの数を取得したいとします。これを行うには、次のクエリを実行します。

    mysql> select table_schema as 'Database OR Schema name', count(table_type) as 'Tables and Views', table_type as 'Object Type' from information_schema.tables  group by table_type,table_schema;

    出力

    上の画像でわかるように、クエリはすべてのデータベースで作成されたテーブルとビューの数を入力しました。

    例5:サイズのあるテーブル

    ここで、 Sakilaで作成されたテーブルのリストを作成します。 それらのサイズのデータ​​ベース。リストを生成するには、次のクエリを実行します。

    mysql> SELECT Table_schema as 'Database Name',  TABLE_NAME AS 'Table',   ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 ) AS 'Size in KB' FROM   information_schema.TABLES WHERE TABLE_SCHEMA = 'sakila' and table_type='BASE TABLE' ORDER BY  (DATA_LENGTH + INDEX_LENGTH) DESC;

    出力

    ご覧のとおり、クエリはデータベース名、テーブル名、サイズを返しました。

    概要

    したがって、データベースに作成されたテーブルのリストにデータを入力する方法を定義し、使用する方法を学びました。 SHOWを探索しました コマンドを実行してから、 Information_schema.tablesをクエリする方法を調べました。 テーブル。これらのヒントがワークフローに役立つことを願っています。

    SQLのテーブルについて詳しく知りたい場合は、SQLServerの一時テーブルに関する記事をお読みください。また、何かを追加したり、作業のヒントを共有したり、これらの方法について話し合ったりしたい場合は、コメントセクションにようこそ。


    1. 日時列から日付を選択するにはどうすればよいですか?

    2. MariaDB10.6の新機能

    3. ミリ秒単位のDateTimeの表現?

    4. プロバイダー名前付きパイププロバイダーエラー40は、SQLServerエラー2への接続を開くことができませんでした