小团队作战经常是上来就是随便打下草稿,然后三七二十一使用图形化工具把数据库表结构建起来了,根本就没有写像下面这种数据库设计文档后,才进行代码编写工作 。
文章插图
但是随着项目的完成,需要交付给客户 。交付免不了需要各种交付文档,其中数据库设计文档就是其中一个需要交付的文档 。有没有快速编写数据库设计文档的方法呢?一条语句的事,轻轻松松搞掂 。
SET @rownum = 0;
SELECT
'序号',
【一条SQL搞定数据库设计文档】'列名',
'类类',
'长度',
'是否为空',
'列的描述'
FROM
DUAL
UNION
SELECT
@rownum :=@rownum + 1 AS 序号,
COLUMN_NAME AS 列名,
COLUMN_TYPE AS 类型,
CHARACTER_MAXIMUM_LENGTH AS 长度,
(
CASE
WHEN IS_NULLABLE = 'YES' THEN
'是'
ELSE
'否'
END
) AS 是否为空,
COLUMN_COMMENT AS 列的描述
FROM
information_schema.`COLUMNS`
WHERE
TABLE_NAME = ('jc_user')
从语句中可以看到使用到information_schema库的COLUMNS 表,是因为所有创建的表的字段的元信息都存储在information_schema库的COLUMNS 表中,所有使用COLUMNS 表 。上面这条语句只是导出jc_user这张确定的表的字段信息 。
文章插图
下面这条SQL语句可以导出查出jeecms2库的表的名字
SET @rownum = 0;
SELECT
@rownum :=@rownum + 1 AS 序号,
t.table_name AS 表名,
t.TABLE_COMMENT AS 描述
FROM
information_schema.`TABLES` t
WHERE
t.TABLE_SCHEMA = 'jeecms2'
ORDER BY
t.TABLE_NAME;
文章插图
结合以上这两条SQL,可以在使用POI就可以开发一个非常实用的工具,生成数据库设计文档就是那么一分钟的事 。
推荐阅读
- MySQL 8.0:字符集从 utf8 转换成 utf8mb4
- 安装MySQL数据库
- 从 MySQL 迁移数据到 Oracle 中的全过程
- 从头带你捋一遍 MySQL 索引结构
- MySQL读写分离?MySQL主从复制原理?如何解决主从同步延时?
- 梦见鱼活吞了另一条鱼而且好多血 梦见鱼活吞了另一条鱼被解救了
- MySQL经典实用查询案例,总结整理
- SQL优化的几种方式
- MySQL 数据库、表、字段的命名建议规范
- 男生如何搞定绿茶女 男生如何对付林有有