mysql mssql数据库表结构查看工具


一、表结构查询语句

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,下载

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM