テーブルとテーブルの行数を表示できるmysqlコマンドはありますか?
答え1
MySQL 5以降、information_schema
MySQLデータベース内のテーブルのメタデータを含む仮想テーブルをクエリできます。
各データベースの各テーブルの行数を見つけるには、次のようにします。
$ mysql -u root -p \
-e "select table_schema,table_name,table_rows from information_schema.tables;"
+---------------------+---------------------------------------+------------+
| table_schema | table_name | table_rows |
+---------------------+---------------------------------------+------------+
| information_schema | CHARACTER_SETS | NULL |
| information_schema | COLLATIONS | NULL |
| information_schema | COLLATION_CHARACTER_SET_APPLICABILITY | NULL |
...
...
| arrdb01 | active_part | 24 |
| arrdb01 | audit_record | 19 |
| arrdb01 | code | 8 |
| arrdb01 | part_obj | 0 |
| arrdb02 | active_part | 24 |
| arrdb02 | audit_record | 14 |
| arrdb02 | code | 9 |
| arrdb02 | part_obj | 1 |
| cacti | cdef | 8 |
| cacti | cdef_items | 22 |
| cacti | colors | 215 |
...
...
上記のコマンドは、 information_schema テーブルから3つの列を選択します。
- table_schema(データベース名)
- テーブル名
- テーブル行数
含まれているすべてのフィールドを表示するには、explainコマンドを使用できます。
$ mysql -u root -p -e "describe information_schema.tables"
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| TABLE_CATALOG | varchar(512) | YES | | NULL | |
| TABLE_SCHEMA | varchar(64) | NO | | | |
| TABLE_NAME | varchar(64) | NO | | | |
| TABLE_TYPE | varchar(64) | NO | | | |
| ENGINE | varchar(64) | YES | | NULL | |
| VERSION | bigint(21) | YES | | NULL | |
| ROW_FORMAT | varchar(10) | YES | | NULL | |
| TABLE_ROWS | bigint(21) | YES | | NULL | |
| AVG_ROW_LENGTH | bigint(21) | YES | | NULL | |
| DATA_LENGTH | bigint(21) | YES | | NULL | |
| MAX_DATA_LENGTH | bigint(21) | YES | | NULL | |
| INDEX_LENGTH | bigint(21) | YES | | NULL | |
| DATA_FREE | bigint(21) | YES | | NULL | |
| AUTO_INCREMENT | bigint(21) | YES | | NULL | |
| CREATE_TIME | datetime | YES | | NULL | |
| UPDATE_TIME | datetime | YES | | NULL | |
| CHECK_TIME | datetime | YES | | NULL | |
| TABLE_COLLATION | varchar(64) | YES | | NULL | |
| CHECKSUM | bigint(21) | YES | | NULL | |
| CREATE_OPTIONS | varchar(255) | YES | | NULL | |
| TABLE_COMMENT | varchar(80) | NO | | | |
+-----------------+--------------+------+-----+---------+-------+
引用する
答え2
connect name_of_database;
show tables;
select count(*) from name_of_database.name_of_table;
完全修飾テーブル名の完全なリストを取得するには、次の手順を実行します。
select concat(table_schema, '.', table_name) from information_schema.tables;
答え3
データベースを選択したら、以下を試してください。
SHOW TABLE STATUS LIKE '%'
引用: