1. 需求
之前在学校的日子,经常要写各种毕设还有大小论文等等,而软件工程格式的模板中常见的就是数据字典,简单的说就是把数据库中的表整理成表格进行描述和展示。如果表很多,以及字段也很多的情况下,其实会很麻烦,下面提供一个半自动的方式吧,就是基于Navicat 实现数据字典的导出。
2. 操作方式
2.1 导出
大家知道 MySQL 会自带几个表,今天我们主要利用的是其中的 information_schema
例如我想实现上述风格的数据字典,那么代码如下
SELECTt.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 tWHERE 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,例如还想查询默认值
SELECTt.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 tWHERE t.TABLE_SCHEMA='ideal_office' AND t.TABLE_NAME='t_application_review'ORDER BY t.ORDINAL_POSITION ASC;
