You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQLite查询获取所有表的表名、字段数及行数?

SQLite 表信息统计查询实现

最终实现方案

你可以通过两步完成符合要求的查询:

步骤1:生成带UNION ALL的最终查询语句

执行以下SQL得到可直接运行的目标查询语句:

SELECT GROUP_CONCAT(
  'SELECT ''' || name || ''' AS table_name, ' 
  || '(SELECT COUNT(*) FROM pragma_table_info(''' || name || ''')) AS column_count, '
  || 'COUNT(*) AS row_count FROM ' || quote(name),
  ' UNION ALL '
) AS target_sql
FROM sqlite_schema
WHERE type = 'table' AND name NOT LIKE 'sqlite_%';

步骤2:执行生成的查询语句

将步骤1查询得到的target_sql字段内容复制出来直接执行,即可得到符合要求的结果,输出字段说明如下:

  • table_name:字符串格式的表名
  • column_count:整数类型的表字段数量
  • row_count:整数类型的表行数,通过COUNT(*)统计得到

逻辑说明

  • 系统表sqlite_schema过滤type='table'条件得到所有用户自定义表,排除sqlite_前缀的系统内置表
  • 内置函数pragma_table_info(表名)会返回指定表的所有字段元数据,用COUNT(*)统计即可得到字段总数
  • 通过GROUP_CONCAT函数以UNION ALL为分隔符,拼接每个表的独立查询逻辑,完全符合复合操作符的使用要求

注意:SQLite本身不支持直接动态执行SQL语句,因此需要先生成查询语句再手动执行,如果你是在应用代码中调用,可以将步骤1的结果取出后直接作为查询语句执行。

内容的提问来源于stack exchange,提问作者giovanni sergi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:54:04