1. 需求

之前在学校的日子,经常要写各种毕设还有大小论文等等,而软件工程格式的模板中常见的就是数据字典,简单的说就是把数据库中的表整理成表格进行描述和展示。如果表很多,以及字段也很多的情况下,其实会很麻烦,下面提供一个半自动的方式吧,就是基于Navicat 实现数据字典的导出。
1.png

2. 操作方式

2.1 导出

大家知道 MySQL 会自带几个表,今天我们主要利用的是其中的 information_schema
例如我想实现上述风格的数据字典,那么代码如下

  1. SELECT
  2. t.COLUMN_NAME AS 列名,
  3. t.COLUMN_TYPE AS 数据类型,
  4. '' AS 长度,
  5. CASE t.IS_NULLABLE WHEN 'YES' THEN '是' ELSE '否' END AS 是否允许为空,
  6. '' AS 属性名称,
  7. t.COLUMN_COMMENT AS 说明
  8. FROM information_schema.COLUMNS t
  9. WHERE t.TABLE_SCHEMA='ideal_office' AND t.TABLE_NAME='t_application_review'
  10. ORDER BY t.ORDINAL_POSITION ASC;
  • 只需要修改 t.TABLE_SCHEMA 后的数据库名,以及 t.TABLE_NAME 后的表名即可。
  • 因为长度是没法单独取出来的,它会直接带在数据类型中,所以我这里直接导出空,然后自己补充下
  • 属性名称也是一个道理,它是文档中需要的,但是数据库表中没有的

    2.2 运行效果

2.png
属性名称这种大小写和驼峰的转换可以半自动
推荐一个网址工具:https://www.iamwawa.cn/daxiaoxie.html
3.png

2.3 导出

4.png
5.png
然后再 Excel 中就可以复制到 Word 中了,复制后用模板给的例子格式刷一下即可。

3. 如何构造

大家可以去看一些他都有哪些字段,来取舍自己需要的部分。

  1. SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='ideal_office' AND TABLE_NAME='t_application_review';

可以继续 DIY,例如还想查询默认值

  1. SELECT
  2. t.COLUMN_NAME AS 列名,
  3. t.COLUMN_TYPE AS 数据类型,
  4. '' AS 长度,
  5. CASE IFNULL(t.COLUMN_DEFAULT,'Null')
  6. WHEN '' THEN '空字符串'
  7. WHEN 'Null' THEN 'NULL'
  8. ELSE t.COLUMN_DEFAULT END AS 默认值,
  9. CASE t.IS_NULLABLE WHEN 'YES' THEN '是' ELSE '否' END AS 是否允许为空,
  10. '' AS 属性名称,
  11. t.COLUMN_COMMENT AS 说明
  12. FROM information_schema.COLUMNS t
  13. WHERE t.TABLE_SCHEMA='ideal_office' AND t.TABLE_NAME='t_application_review'
  14. ORDER BY t.ORDINAL_POSITION ASC;