MySQL将表信息导出成Excel

今天收到一个新需求,将所有数据库表整理成表格提交给产品,给的模板大概是这样
MySQL将表信息导出成Excel

考虑到表也不多,就打算直接sql进行查询后cv大法。

先展示结果,如图:

MySQL将表信息导出成Excel

上代码

SELECT
  COLUMN_NAME 数据项名称,
  DATA_TYPE 数据项类型,
  CHARACTER_MAXIMUM_LENGTH 数据项长度,
  IF (COLUMN_KEY = ‘PRI‘, ‘是‘, ‘‘) 是否关键字,
  IF (IS_NULLABLE = ‘NO‘, ‘否‘, ‘是‘) 是否为空,
  COLUMN_COMMENT 数据项含义,
  IF (EXTRA = ‘auto_increment‘, ‘自增‘, ‘‘) 数据项说明
FROM
  INFORMATION_SCHEMA. COLUMNS
WHERE
  -- 数据库名称
  table_schema = ‘你的数据库名‘
  -- article为表名
  AND table_name = ‘你的表名‘

以上是我需求所需要的用到的字段,还有很多其他的字段你们可以参考下表:

列名 字段类型 描述
TABLE_CATALOG varchar(512) 表限定符
TABLE_SCHEMA varchar(64) 表所有者
TABLE_NAME varchar(64) 表名
COLUMN_NAME varchar(64) 列名
ORDINAL_POSITION bigint(21) 列标识序号(顺序)
COLUMN_DEFAULT longtext 该列的默认值
IS_NULLABLE varchar(3) 是否为空,返回NO/YES
DATA_TYPE varchar(64) 数据类型(举例:varchar)
CHARACTER_MAXIMUM_LENGTH bigint(21) 以字符为单位的最大长度
CHARACTER_OCTET_LENGTH bigint(21) 以字节为单位的最大长度
NUMERIC_PRECISION bigint(21) 近似数字数据、精确数字数据、整型数据或货币数据的精度。否则,返回 NULL
NUMERIC_SCALE bigint(21) 近似数字数据、精确数字数据、整数数据或货币数据的小数位数。否则,返回 NULL
CHARACTER_SET_NAME varchar(32) 如果该列是字符数据或 text 数据类型,那么为字符集返回唯一的名称。否则,返回 NULL
COLLATION_NAME varchar(32) datetime 及 SQL-92 interval 数据类型的子类型代码。对于其它数据类型,返回 NULL
COLUMN_TYPE longtext 如果列是字符数据或 text 数据类型,那么为排序次序返回唯一的名称。否则,返回 NULL
COLUMN_KEY varchar(3) 索引
EXTRA varchar(27) 额外项,例如:有自增返回auto_increment,否则空字符串
PRIVILEGES varchar(80) 权限
COLUMN_COMMENT varchar(1024) 注释

以上部分描述来源于百度,不理解的自己拿一张表去 select * 一下 INFORMATION_SCHEMA. COLUMNS 表基本就能get了。

MySQL将表信息导出成Excel

上一篇:android通过httpClient请求获取JSON数据并且解析


下一篇:数据库多表查询