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

如何统计MySQL指定数据库中所有表和视图的列数量

查询指定MySQL库内所有表、视图列数的方法

直接查询MySQL内置的information_schema元数据库即可实现,不需要额外导出结构或写脚本处理。

基础查询(直接返回你需要的格式)

将SQL中的你的目标数据库名替换为实际要统计的数据库名称,执行后即可得到每个表、视图对应的列总数:

SELECT 
    TABLE_NAME AS table_name,
    COUNT(COLUMN_NAME) AS column_count
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = '你的目标数据库名'
GROUP BY TABLE_NAME
ORDER BY TABLE_NAME;

查询逻辑说明

  • information_schema.COLUMNS是MySQL内置的系统表,存储了所有数据库下基表、视图的全部列元数据,两类对象的列记录都会被完整收录
  • 通过TABLE_SCHEMA条件过滤指定数据库下的所有列记录
  • 按对象名TABLE_NAME分组统计列数,返回的字段名、统计结果完全匹配你给出的预期输出格式,对应示例结构的返回结果如下:
table_namecolumn_count
TABLE_12
TABLE_21
VIEW_11

扩展:区分对象类型的查询

如果需要在结果中区分统计对象是普通表还是视图,可以关联information_schema.TABLES表增加类型字段:

SELECT 
    c.TABLE_NAME AS table_name,
    t.TABLE_TYPE AS object_type,
    COUNT(c.COLUMN_NAME) AS column_count
FROM information_schema.COLUMNS c
LEFT JOIN information_schema.TABLES t
    ON c.TABLE_SCHEMA = t.TABLE_SCHEMA 
    AND c.TABLE_NAME = t.TABLE_NAME
WHERE c.TABLE_SCHEMA = '你的目标数据库名'
GROUP BY c.TABLE_NAME, t.TABLE_TYPE
ORDER BY c.TABLE_NAME;

返回结果中object_type字段值为BASE TABLE代表是普通基表,值为VIEW代表是视图,可按需筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 07:51:24