今天收到一个新需求,将所有数据库表整理成表格提交给产品,给的模板大概是这样
考虑到表也不多,就打算直接sql进行查询后cv大法。
先展示结果,如图:
上代码
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了。