MySQL 查询某个数据库的所有表行数的语句

如果你需要查询数据库中所有表的行数但不想显示表名,可以使用以下SQL语句:

SELECT SUM(TABLE_ROWS) AS total_rows
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '你的数据库名';

这个查询会返回数据库中所有表的行数总和,而不会列出单个表名。

注意事项

  1. 将’你的数据库名’替换为你实际的数据库名称
  2. TABLE_ROWS是近似值,对于InnoDB表可能不精确
  3. 如果你需要精确计数,可以考虑使用存储过程来遍历所有表

精确计数的方法(执行较慢)

如果需要精确计数,可以使用以下存储过程:

DELIMITER //
CREATE PROCEDURE count_all_rows()
BEGIN
    DECLARE total INT DEFAULT 0;
    SELECT SUM(TABLE_ROWS) INTO total
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = DATABASE();
    SELECT total AS total_rows;
END //
DELIMITER ;

CALL count_all_rows();

第一个方法快速但不精确,第二个方法精确但执行时间较长。

正文完
 0
正安一片瓦
版权声明:本站原创文章,由 正安一片瓦 于2025-07-23发表,共计515字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码