我们在进行数据库模型设计时, 需要向他人展示我们的数据库表个字段设计 如果手动通过Excel填写这些字段会非常麻烦, 因此可以通过SQL来将此信息进行导出成Excel, 再通过稍微调整表格格式的方式, 就能得到如下图的数据库设计表格
步骤如下:
-- 下图使用的sql
SELECT
COLUMN_NAME AS '字段名',
COLUMN_TYPE AS '类型',
COLUMN_COMMENT AS '字段注释',
CASE
WHEN DATA_TYPE IN ('varchar', 'char', 'text', 'tinytext', 'mediumtext', 'longtext')
THEN CHARACTER_MAXIMUM_LENGTH
WHEN DATA_TYPE IN ('int', 'tinyint', 'smallint', 'mediumint', 'bigint', 'float', 'double', 'decimal', 'numeric')
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(COLUMN_TYPE, '(', -1), ')', 1)
ELSE 0
END AS '长度',
IF(IS_NULLABLE='YES','否','是') AS '是否必须'
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
table_schema = '数据库名'
AND table_name = '表名';
-- 发稿前优化后的sql: 字段类型数据去除括号内的显示长度
SELECT
COLUMN_NAME AS '字段名',
SUBSTRING_INDEX(COLUMN_TYPE, '(', 1) AS '类型',
CASE
WHEN DATA_TYPE IN ('varchar', 'char', 'text', 'tinytext', 'mediumtext', 'longtext')
THEN CHARACTER_MAXIMUM_LENGTH
WHEN DATA_TYPE IN ('int', 'tinyint', 'smallint', 'mediumint', 'bigint', 'float', 'double', 'decimal', 'numeric')
THEN SUBSTRING_INDEX(SUBSTRING_INDEX(COLUMN_TYPE, '(', -1), ')', 1)
ELSE 0
END AS '长度',
COLUMN_COMMENT AS '字段注释',
IF(IS_NULLABLE='YES','否','是') AS '是否必须'
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
table_schema = '数据库名'
AND table_name = '表名';
下面是这个SQL的解释
在Navicat中点击查询->新建查询, 将SQL复制到下面
点击运行按钮, 运行sql, 得到如下数据后点击导出结果
选择第二个选项
选择导出成xlsx格式
导出并重命名
选择包含列标题, 否则导出的表格就只有数据, 没有列名称
无误后点击开始, 执行导出进程
进度条满了之后并且提示 FInish Successfully 说明导出成功, 然后打开该Excel表格
注意多次导出时, 表格名称不能重复, 否则新的表格数据无法写入
Ctrl+A 全选, 首先加边框线
表格美化, 选择适中
优化后的表格如下图所示
文本内容左对齐(按个人喜好)
第一列置灰
拖动在最左侧竖向的1和2之间的这条横线, 设置第一列行高, 建议设置为30
设置行高后的第一列如下图所示
然后再次Ctrl+A , 全部选中表格信息之后将其复制到Word文档中, 如下图所示