테이블과 테이블에 있는 행 수를 표시할 수 있는 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 '%'
인용하다: