2011-05-21 88 views
6

我擁有一個擁有數百個表的龐大數據庫,我想要查找所有表中定義的總字段(列)。數據庫中所有表中的字段總數

是否有一個SQL查詢,可以給我嗎?如果不是,那麼最好的方法是什麼?

回答

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 
3

試試這個(當登錄到您的當前架構):

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

試試這個:

SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS 
0

你可以得到你的查詢n從這個開源項目叫做anywhereindb。這個項目的最終結果比你需要的還要多,但你可以查看代碼,並找出表中所有部分的部分。

1

我在mysql中是新的,但如果表INFORMATION_SCHEMA.COLUMNS表名列名信息的表,那麼你可以使用下面的查詢

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

,這將給與相應的所有表名在該表中使用的列號..

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

相關問題