![どのmysqlコマンドがデータベースのテーブルと行数を表示できますか? [閉鎖]](https://linux33.com/image/32866/%E3%81%A9%E3%81%AEmysql%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%8C%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%A8%E8%A1%8C%E6%95%B0%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
テーブルとテーブルの行数を表示できる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 '%'
引用: