5

Mysql生成数据字典 - WvemiC9

 2 years ago
source link: https://www.cnblogs.com/wangliukun/p/16047140.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Mysql生成数据字典

在MySQL中,有个自带的数据库,名为information_schema。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。我们通过查询这个数据库的COLUMNS表(此表提供了其他所有表中的列信息)信息,来获取我们需要的表结构信息,从而将其导出为数据字典。

navicat 执行以下SQL的查询(如果需要其他字段,请参考下面COLUMNS表字段拓展):

 1 SELECT
 2     COLUMN_NAME AS '字段名',
 3     COLUMN_TYPE AS '字段类型',
 4     ( CASE WHEN IS_NULLABLE = 'YES' THEN '是' ELSE '否' END ) AS '是否可空',
 5     ( CASE WHEN COLUMN_KEY = 'PRI' THEN '是' ELSE '否' END ) AS '是否主键',
 6         COLUMN_DEFAULT AS '默认值',
 7     COLUMN_COMMENT AS '注释' 
 8 FROM
 9     INFORMATION_SCHEMA.COLUMNS 
10 WHERE
11     TABLE_SCHEMA = '数据库' 
12     AND TABLE_NAME = '表';

通过navicat工具进行导出(如下图的按钮,之后自行选择要导出的内容);

COLUMNS表字段拓展:

列名描述

COLUMN_NAME 字段名

COLUMN_TYPE 字段类型

TABLE_CATALOG 表限定符。

IS_NULLABLE 列的为空性。如果列允许 NULL,那么该列返回 YES。否则,返回 NO。

COLUMN_KEY 字段主键

COLUMN_DEFAULT 默认值

COLUMN_COMMENT 注释

ORDINAL_POSITION 字段在表的顺序(从1开始)

TABLE_NAME 数据表名

TABLE_SCHEMA 数据库名

DATA_TYPE 数据类型

DATETIME_PRECISION datetime 及 SQL-92 interval 数据类型的子类型代码。对于其它数据类型,返回 NULL。

EXTRA 额外信息

GENERATION_EXPRESSION  

NUMERIC_PRECISION 近似数字数据、精确数字数据、整型数据或货币数据的精度。否则,返回 NULL。

NUMERIC_SCALE 近似数字数据、精确数字数据、整数数据或货币数据的小数位数。否则,返回 NULL。

PRIVILEGES  

CHARACTER_MAXIMUM_LENGTH 以字符为单位的最大长度,适于二进制数据、字符数据,或者文本和图像数据。否则,返回NULL。

CHARACTER_OCTET_LENGTH 以字节为单位的最大长度,适于二进制数据、字符数据,或者文本和图像数据。否则,返回 NULL。

CHARACTER_SET_NAME 如果该列是字符数据或 text数据类型,那么为字符集返回唯一的名称。否则,返回 NULL。

COLLATION_NAME 排序规则,如果列是字符数据或 text数据类型,那么为排序次序返回唯一的名称。否则,返回 NULL。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK