MySQL - 数据库表结构导出到 Excel

这几天刚来实习,项目主管给我布置了个写文档的任务,要求把数据库中所有的表全部填在以下格式的文档中!

一开始慢悠悠的从 Native 中一个一个查看表的结构,不停的复制粘贴-复制粘贴,头都大了,几十张表,几千个字段,我啥时候能下班啊。

于是,我想起可以直接利用sql语句,生成上表的样式,然后直接复制进去,就可以了,话不多说,附上代码。

SELECT
	COLUMN_NAME as 字段名称,
	COLUMN_TYPE as 数据类型,
	if(COLUMN_KEY='PRI','Y','N') as 主键,
	COLUMN_COMMENT as 备注
FROM
	INFORMATION_SCHEMA. COLUMNS
WHERE
	table_schema = '数据库名称'
AND 
	table_name = '数据表名称'

使用内置表INFORMATION_SCHEMA. COLUMNS来查询,任何表中的任何一列都会在此表中对应一行记录。

例如,我的数据表 account(账户表) 的结构为

执行完SQL语句后

现在直接复制粘贴就可以了!

那我能不能直接导出到excel中呢,还得带有表头。话不多说,放代码~

SELECT '字段名称','数据类型','主键','备注'
UNION
SELECT
	COLUMN_NAME as 字段名称,
	COLUMN_TYPE as 数据类型,
	if(COLUMN_KEY='PRI','Y','N') as 主键,
	COLUMN_COMMENT as 备注
FROM
	INFORMATION_SCHEMA. COLUMNS
WHERE
	table_schema = 'mydata'
AND 
	table_name = 'account'
INTO OUTFILE 'C:/Users/Administrator/Desktop/account.xls'

执行后,发现桌面多了account.xls,具体内容如下

唉,真舒服,又可以早点下班了。

 

补充字段(非空字段)

SELECT 'SQL字段名称','数据类型','非空','主键','备注'
UNION
SELECT
 COLUMN_NAME as `SQL字段名称`,
-- COLUMN_NAME as `JAVA字段名称`,
 COLUMN_TYPE as `数据类型`,
 if(IS_NULLABLE='NO','Y','N') as `非空`,
 if(COLUMN_KEY='PRI','Y','N') as `主键`,
 COLUMN_COMMENT as `备注`
FROM
 INFORMATION_SCHEMA. COLUMNS
WHERE
 table_schema = 'dsp'
AND
 table_name = 'dsp_supplier'
-- INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/dsp_supplier.xlsx'

猜你喜欢

转载自blog.csdn.net/Dream_Weave/article/details/106712603