数据库中所有表中的字段总数

时间:2011-05-21 15:33:39

标签: mysql sql database

我有一个包含数百个表的庞大数据库,我想找出所有表中定义的总字段数(列数)。

有没有可以给我的SQL查询?如果没有,最好的方法是什么?

6 个答案:

答案 0 :(得分:4)

这是你想要的吗?

select count(*)
from information_schema.columns
where table_schema = 'your_schema'

您可以像这样运行它以查看它是否合理:

select table_name, column_name
from information_schema.columns
where table_schema = 'your_schema'
order by 1, 2

答案 1 :(得分:3)

尝试此操作(登录到当前架构时):

select count(*) from information_schema.columns where table_schema = DATABASE();

答案 2 :(得分:1)

我是mysql的新手,但如果表 information_schema.columns 是包含 table_name column_name 信息的表格,那么您可以使用以下查询< / p>

select table_name, count( distinct column_name ) column_number_used
from information_schema.columns 
where table_schema = 'your_schema' 
group by table_name

这应该为所有表名提供该表中使用的相应列号。

答案 3 :(得分:0)

试试这个:

SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS

答案 4 :(得分:0)

您可以从名为anywhereindb的这个开源项目中获取所需的查询。这个项目的最终结果比你需要的更进一步,但是你可以查看代码,并找出表格中所有部分的部分。

答案 5 :(得分:0)

下面的示例可以根据您的要求运行和修改查询。

Use [Your_DB_Name]

/* Count Total Number Of Tables */
SELECT COUNT(*) AS 'Total Tables' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

/* Count Total Number Of Views */
SELECT COUNT(*)  AS 'Total Views'  FROM INFORMATION_SCHEMA.VIEWS

/* Count Total Number Of Stored Procedures */
SELECT COUNT(*)  AS 'Total SPs'  FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE'

/* Count Total Number Of UDF(User Defined Functions) */
SELECT COUNT(*)  AS 'Total Functions' FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'FUNCTION'

示例:

enter image description here