一、表結構查詢語句
sql server數據庫
查詢數據庫名
select db_name()
查詢所有表名及描述
select tbs.name [Key],ds.value [Value] from {yourdbname}..sysobjects tbs--yourdbname可省略 left join sys.extended_properties ds on tbs.id=ds.major_id and ds.minor_id=0 where tbs.xtype='U' order by [Key]
查詢所有表字段數據類型長度字段描述默認值等信息
SELECT obj.name AS 表名, col.colorder AS 序號, col.name AS 列名, ISNULL(ep.[value], '') AS 列說明, t.name AS 數據類型, col.length AS 長度, ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0) AS 小數, CASE WHEN COLUMNPROPERTY(col.id, col.name, 'IsIdentity') = 1 THEN '√' ELSE '' END AS 標識, CASE WHEN EXISTS (SELECT 1 FROM dbo.sysindexes si INNER JOIN dbo.sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid INNER JOIN dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid INNER JOIN dbo.sysobjects so ON so.name = si.name AND so.xtype = 'PK' WHERE sc.id = col.id AND sc.colid = col.colid ) THEN '√' ELSE '' END AS 主鍵, CASE WHEN col.isnullable = 1 THEN '√' ELSE '' END AS 空值, ISNULL(comm.text, '') AS 默認值 FROM dbo.syscolumns col LEFT JOIN dbo.systypes t ON col.xtype = t.xusertype INNER JOIN dbo.sysobjects obj ON col.id = obj.id AND obj.xtype = 'U' AND obj.status >= 0 ------(xtype = 'U'非用戶表) LEFT JOIN dbo.syscomments comm ON col.cdefault = comm.id LEFT JOIN sys.extended_properties ep ON col.id = ep.major_id AND col.colid = ep.minor_id AND ep.name = 'MS_Description' LEFT JOIN sys.extended_properties epTwo ON obj.id = epTwo.major_id AND epTwo.minor_id = 0 AND epTwo.name = 'MS_Description' --WHERE obj.name = 'yourtablename'
mysql數據庫
查詢數據庫名
select database()
查詢所有表名及描述
SELECT TABLE_NAME `Key`,TABLE_COMMENT `Value` FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='yourdbname' AND TABLE_TYPE='base table'
查詢所有表字段信息
SELECT TABLE_NAME AS '表名', COLUMN_NAME AS '列名', ORDINAL_POSITION AS '序號', COLUMN_DEFAULT AS '默認值', case IS_NULLABLE when 'YES' then '√' else '' end AS '空值', DATA_TYPE AS '數據類型', CHARACTER_MAXIMUM_LENGTH AS '長度', NUMERIC_PRECISION AS '數值最大位數', NUMERIC_SCALE AS '小數', case COLUMN_KEY when 'PRI' then '√' else '' end as '主鍵', case EXTRA when 'AUTO_INCREMENT' then '√' else '' end AS '標識', COLUMN_COMMENT AS '列說明' FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = 'yourdbname' ORDER BY TABLE_NAME,ORDINAL_POSITION
二、工具
以上sql語句可以查看表、字段名稱及描述信息,也有人需要用工具將這些信息導出到文件。個人為了學習,使用.net core寫了一個小工具。自動生成數據庫說明文檔(html文件)。有興趣https://github.com/ghconn/vdesn,使用需要安裝.net core sdk 2.2,下載