查询以计算我在MySQL中拥有的表的数量

Gen*_*nik 119 mysql

我正在增加我拥有的表的数量,我有时好奇只是做一个快速的命令行查询来计算我的数据库中的表的数量.那可能吗?如果是这样,查询是什么?

Jos*_*ian 279

SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbName';
Run Code Online (Sandbox Code Playgroud)

资源

这是我的:

USE databasename; 
SHOW TABLES; 
SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)

  • 第二个选择很容易...,谢谢你的帖子 (2认同)

Rol*_*DBA 24

如果您想要计算所有数据库和摘要,请尝试以下方法:

SELECT IFNULL(table_schema,'Total') "Database",TableCount 
FROM (SELECT COUNT(1) TableCount,table_schema 
      FROM information_schema.tables 
      WHERE table_schema NOT IN ('information_schema','mysql') 
      GROUP BY table_schema WITH ROLLUP) A;
Run Code Online (Sandbox Code Playgroud)

这是一个示例运行:

mysql> SELECT IFNULL(table_schema,'Total') "Database",TableCount
    -> FROM (SELECT COUNT(1) TableCount,table_schema
    ->       FROM information_schema.tables
    ->       WHERE table_schema NOT IN ('information_schema','mysql')
    ->       GROUP BY table_schema WITH ROLLUP) A;
+--------------------+------------+
| Database           | TableCount |
+--------------------+------------+
| performance_schema |         17 |
| Total              |         17 |
+--------------------+------------+
2 rows in set (0.29 sec)
Run Code Online (Sandbox Code Playgroud)

试试看 !!!

  • @Gaia抱歉,我忘记了数据库是一个保留字.所以,我用Double Quotes包围了这个词. (2认同)

Muk*_*und 8

SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'dbo' and TABLE_TYPE='BASE TABLE'
Run Code Online (Sandbox Code Playgroud)


Roh*_*bey 7

这将为您提供 mysql 中所有数据库的名称和表计数

SELECT TABLE_SCHEMA,COUNT(*) FROM information_schema.tables group by TABLE_SCHEMA;
Run Code Online (Sandbox Code Playgroud)