1. 需求
之前在学校的日子,经常要写各种毕设还有大小论文等等,而软件工程格式的模板中常见的就是数据字典,简单的说就是把数据库中的表整理成表格进行描述和展示。如果表很多,以及字段也很多的情况下,其实会很麻烦,下面提供一个半自动的方式吧,就是基于Navicat 实现数据字典的导出。
2. 操作方式
2.1 导出
大家知道 MySQL 会自带几个表,今天我们主要利用的是其中的 information_schema
例如我想实现上述风格的数据字典,那么代码如下
SELECT
t.COLUMN_NAME AS 列名,
t.COLUMN_TYPE AS 数据类型,
'' AS 长度,
CASE t.IS_NULLABLE WHEN 'YES' THEN '是' ELSE '否' END AS 是否允许为空,
'' AS 属性名称,
t.COLUMN_COMMENT AS 说明
FROM information_schema.COLUMNS t
WHERE t.TABLE_SCHEMA='ideal_office' AND t.TABLE_NAME='t_application_review'
ORDER BY t.ORDINAL_POSITION ASC;
- 只需要修改
t.TABLE_SCHEMA
后的数据库名,以及t.TABLE_NAME
后的表名即可。 - 因为长度是没法单独取出来的,它会直接带在数据类型中,所以我这里直接导出空,然后自己补充下
- 属性名称也是一个道理,它是文档中需要的,但是数据库表中没有的
2.2 运行效果
属性名称这种大小写和驼峰的转换可以半自动
推荐一个网址工具:https://www.iamwawa.cn/daxiaoxie.html
2.3 导出
然后再 Excel 中就可以复制到 Word 中了,复制后用模板给的例子格式刷一下即可。
3. 如何构造
大家可以去看一些他都有哪些字段,来取舍自己需要的部分。
SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='ideal_office' AND TABLE_NAME='t_application_review';
可以继续 DIY,例如还想查询默认值
SELECT
t.COLUMN_NAME AS 列名,
t.COLUMN_TYPE AS 数据类型,
'' AS 长度,
CASE IFNULL(t.COLUMN_DEFAULT,'Null')
WHEN '' THEN '空字符串'
WHEN 'Null' THEN 'NULL'
ELSE t.COLUMN_DEFAULT END AS 默认值,
CASE t.IS_NULLABLE WHEN 'YES' THEN '是' ELSE '否' END AS 是否允许为空,
'' AS 属性名称,
t.COLUMN_COMMENT AS 说明
FROM information_schema.COLUMNS t
WHERE t.TABLE_SCHEMA='ideal_office' AND t.TABLE_NAME='t_application_review'
ORDER BY t.ORDINAL_POSITION ASC;