mysql生成数据字典的原理与实例是什么,数据库数据字典简单例子

mysql生成数据字典的原理与实例是什么,数据库数据字典简单例子,Mysql生成数据字典的原理与实例

数据字典是DBA需要维护的重要内容。有人喜欢用excel维护,我更喜欢直接在数据库上维护。下面文章主要介绍MySQL生成数据字典的原理和实例,以及导出Mysql数据字典的方法。有需要的朋友可以参考一下。

目录

生成原理生成示例列表字段扩展:附件:1分钟导出的MySQL数据字典汇总

生成原理

在MySQL中,有一个名为information_schema的内置数据库。它保存了由MySQL服务器维护的所有其他数据库的信息。例如数据库的名称、数据库的表、表列的数据类型和访问权限限制。我们通过查询这个数据库的COLUMNS表(这个表提供了所有其他表的列信息)得到我们需要的表结构信息,然后导出为数据字典。

生成实例

Navicat执行以下SQL的查询(如果需要其他字段,请参考以下列表格字段扩展):

挑选

COLUMN_NAME作为“字段名”,

COLUMN_TYPE为“字段类型”,

(情况当IS _ NULLABLE= YES THEN YES ELSE no END)为 NULLABLE ,

(当COLUMN _ KEY= PRI THEN yes ELSE no END时的情况)作为主键,

COLUMN_DEFAULT作为“默认值”,

COLUMN_COMMENT作为“注释”

信息_模式。列

在哪里

TABLE_SCHEMA=数据库

而TABLE _ NAME= table

通过navicat工具导出(如下图所示的按钮,然后自己选择要导出的内容);

COLUMNS表字段拓展:

列描述COLUMN_NAME字段名称COLUMN_TYPE字段类型TABLE_CATALOG表限定符。IS_NULLABLE列的空值。如果该列允许NULL,则该列返回YES。否则,不返回。COLUMN_KEY字段主键COLUMN_DEFAULT默认值COLUMN_COMMENT注释ORDINAL_POSITION字段在表中的顺序(从1开始)TABLE_NAME数据表_SCHEMA数据库名称DATA_TYPE数据类型DATETIME _ PRECISIONdatetime日期时间和SQL-92interval数据类型的子类型代码。对于其他数据类型,将返回NULL。EXTRA extra信息Generation _ expression numeric _ precision近似数字数据、精确数字数据、整数数据或货币数据的精度。否则,返回NULL。NUMERIC_SCALE近似于数字数据、精确数字数据、整数数据或货币数据的小数位数。否则,返回NULL。privileges Character _ Maximum _ Length以字符为单位的最大长度,适用于二进制数据、字符数据或文本和图像数据。否则,返回NULL。CHARACTER_OCTET_LENGTH以字节为单位的最大长度,适用于二进制数据、字符数据或文本和图像数据。否则,返回NULL。CHARACTER_SET_NAME如果列是字符数据或文本数据类型,则为字符集返回一个唯一的名称。否则,返回NULL。COLLATION_NAME collation,如果列是字符数据或文本数据类型,则返回排序顺序的唯一名称。否则,返回NULL。

附:1分钟导出MySQL的数据字典

利用mysql的information_schema中的COLUMNS表和navicat中的export功能快速导出数据字典,看看这个表的表结构。

创建临时表“列”(

` table _ catalog ` varchar(512)NOT NULL DEFAULT ,

` table _ schema ` varchar(64)NOT NULL DEFAULT ,

` table _ name ` varchar(64)NOT NULL DEFAULT ,

` column _ name ` varchar(64)NOT NULL DEFAULT ,

` ordinal _ position ` bigint(21)unsigned NOT NULL默认值为 0 ,

` COLUMN_DEFAULT` longtext,

` is _ nullable ` varchar(3)NOT NULL DEFAULT ,

` data _ type ` varchar(64)NOT NULL DEFAULT ,

` character _ MAXIMUM _ length ` bigint(21)无符号缺省NULL,

` character _ OCTET _ length ` bigint(21)无符号缺省NULL,

` numeric _ precision bigint(21)无符号缺省NULL,

` NUMERIC_SCALE` bigint(21)无符号默认值NULL,

` DATETIME_PRECISION` bigint(21)无符号默认NULL,

` CHARACTER_SET_NAME` varchar(32)默认为NULL,

` COLLATION_NAME` varchar(32)默认为NULL,

` COLUMN_TYPE` longtext NOT NULL,

` column _ key ` varchar(3)NOT NULL DEFAULT ,

` extra varchar(30)NOT NULL DEFAULT ,

` privileges ` varchar(80)NOT NULL DEFAULT ,

` column _ comment ` varchar(1024)NOT NULL DEFAULT

)ENGINE=MyISAM默认字符集=utf8

比如我需要导出圭凡库和测试库的数据字典信息:

select TABLE_SCHEMA,TABLE_NAME,COLUMN_TYPE,COLUMN _ COMMENT from information _ SCHEMA . columns其中TABLE_SCHEMA=guifan 或TABLE_SCHEMA=test

在查询结果页面的右上角,有一个带导出功能的按钮。点击它可以选择多种导出格式,如下图所示。

按照提示进行导出。

好了,这就是我想要的数据字典。

总结

关于Mysql生成数据字典的原理和例子的这篇文章就到这里了。有关Mysql生成的数据字典的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

mysql生成数据字典的原理与实例是什么,数据库数据字典简单例子