Que comando mysql pode me mostrar as tabelas em um banco de dados e quantas linhas existem? [fechadas]

0

existe um comando mysql que mostrará as tabelas e quantas linhas elas contêm nelas?

    
por Patoshi パトシ 11.06.2013 / 02:08

3 respostas

3

A partir do MySQL 5 você pode consultar a tabela virtual information_schema que contém metadados sobre as tabelas dentro do seu banco de dados MySQL.

Para descobrir o número de linhas para cada tabela em cada banco de dados:

$ 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 | 
...
...

O comando acima está selecionando 3 colunas da tabela information_schema:

  • table_schema (nome do banco de dados)
  • table_name
  • table_rows

Para ver todos os campos que ele contém, você pode usar o comando describe:

$ 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   |     |         |       | 
+-----------------+--------------+------+-----+---------+-------+

Referências

por 11.06.2013 / 04:31
3
connect name_of_database;
show tables;
select count(*) from name_of_database.name_of_table;

Para obter uma lista completa de nomes de tabelas qualificados:

select concat(table_schema, '.', table_name) from information_schema.tables;
    
por 11.06.2013 / 02:26
2

Depois de selecionar o banco de dados, tente:

SHOW TABLE STATUS LIKE '%'

Referência:

link

    
por 11.06.2013 / 02:23