![어떤 mysql 명령이 데이터베이스의 테이블과 행 수를 표시할 수 있습니까? [폐쇄]](https://linux55.com/image/32866/%EC%96%B4%EB%96%A4%20mysql%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%EC%9D%98%20%ED%85%8C%EC%9D%B4%EB%B8%94%EA%B3%BC%20%ED%96%89%20%EC%88%98%EB%A5%BC%20%ED%91%9C%EC%8B%9C%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%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 '%'
인용하다: