欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-21 08:33:16
...

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

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(账户表) 的结构为

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

执行完SQL语句后

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

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

那我能不能直接导出到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,具体内容如下

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

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

 

补充字段(非空字段)

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'