USE information_schema; --切记这里不能忘掉 SELECT T.TABLE_SCHEMA AS '数据库名称', T.TABLE_NAME AS '表名', T.TABLE_TYPE AS '表类型', T. ENGINE AS '数据库引擎', C.ORDINAL_POSITION AS '字段编号', C.COLUMN_NAME AS '字段名', C.COLUMN_TYPE AS '数据类型', C.IS_NULLABLE AS '允许为空', C.COLUMN_KEY AS '键类型', C.EXTRA AS '自增属性', C.CHARACTER_SET_NAME AS '编码名称', C.COLUMN_COMMENT AS '字段说明' FROM COLUMNS C INNER JOIN TABLES T ON C.TABLE_SCHEMA = T.TABLE_SCHEMA AND C.TABLE_NAME = T.TABLE_NAME WHERE T.TABLE_SCHEMA = 'mysql' --这里mysql指代的是库的名称,也可以在后面添加排序条件这里 就不多说了
mysql查询数据字典的功能主要依靠其自带的一个数据库information_schema库实现,该数据库提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名、表名、列的数据类型、访问权限等等。正因为如此也可以将其称为“数据词典”和“系统目录”。
SCHEMATA表:提供了当前mysql实例中所有数据库的信息。命令show databases查询结果来自该表。
TABLES表:提供了关于数据库中的所有表的信息(包括视图)。详细表述了某个表属于哪个schema(库),表类型,表引擎,创建时间等信息。命令show tables from 库名;可以查询该表数据。
COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。命令show columns from 库名.表名;可以查询该表。
STATISTICS表:提供了关于表索引的信息。命令show index from 库名.表名;查询结果来自该表。
USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。
SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。
TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。
COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。
CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。
COLLATIONS表:提供了关于各字符集的对照信息。
COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。
TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。
KEY_COLUMN_USAGE表:描述了具有约束的键列。
ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。
VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。
TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表
举个例子:
实现效果图如下:
这里我使用的可视化工具是Navicat Premium 11.2.7该版本可操作性的数据库包括MySQL,PostgreSQL,Oracle,SQLite,SQL Server,MariaDB等,我认为是一个挺好使用的工具,推荐大家使用(我不会告诉大家选中所有结果然后右键可以复制成制表符形式数据粘贴到excel中的)
作者:YasinYuan
链接:https://www.jianshu.com/p/baae1b8a2a76
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。