MySQLでテーブルを表示するには、主に2つの方法があります。
- MYSQL SHOW 表 コマンド。
- Information_schema.tablesのクエリ テーブル。
この記事では、両方について説明します。
MySQLSHOWTABLESコマンド
show Tablesコマンドは、データベースに作成されたすべてのテーブルのリストを表示します。構文は次のとおりです。
SHOW [EXTENDED] | [FULL] TABLES
[{FROM} database_name]
[LIKE 'DBNamePattern']
構文では、
- 修飾子 :次のオプションのいずれかを使用して、テーブルを表示できます。
- 拡張– このオプションは、失敗したALTERTABLEステートメントによって作成されたテーブルのリストを作成します。
- フル– このオプションは、テーブルのタイプを提供する追加の列を表示します。ベーステーブル、ビュー、またはシステムビューにすることができます。
- FROM –特定のテーブルからテーブルのリストを作成する場合は、FROMキーワードを使用できます。
- いいね –テーブルのリストに名前に特定のパターンを入力する場合は、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_collation :テーブルのデフォルトの照合の名前。
- チェックサム :チェックサム値。
- 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の一時テーブルに関する記事をお読みください。また、何かを追加したり、作業のヒントを共有したり、これらの方法について話し合ったりしたい場合は、コメントセクションにようこそ。