mysql—information_schema数据库
Posted anweilx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql—information_schema数据库相关的知识,希望对你有一定的参考价值。
一、介绍
mysql中有一个默认数据库名为information_schema,在MySQL中我们把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。
二、information_schema数据库内各数据表功能介绍
1 TABLE_CATALOG:"表所属目录的名称。这个值总是如此def。", 2 TABLE_SCHEMA:"表所属的模式(数据库)的名称。", 3 TABLE_NAME: "表的名称。", 4 TABLE_TYPE:"BASE TABLE用于表格, VIEW用于视图或SYSTEM VIEW用于INFORMATION_SCHEMA 表格。", 5 ENGINE:"对于分区表,ENGINE显示所有分区使用的存储引擎的名称。", 6 VERSION:"此列未使用。通过删除.frmMySQL 8.0中的 文件,此列现在报告硬编码值10,这是.frmMySQL 5.7中使用的最后一个文件版本" 7 ROW_FORMAT:"该行的存储格式(Fixed, Dynamic,Compressed, Redundant,Compact)。对于 MyISAM表格,Dynamic 对应myisamchk -dvv报告的内容Packed。" 8 TABLE_ROWS:"行数。某些存储引擎(例如 MyISAM)存储确切的计数。对于其他存储引擎,例如InnoDB,该值是近似值,并且可以与实际值相差多达40%至50%。在这种情况下,用于SELECT COUNT(*)获得准确的计数。" 9 AVG_ROW_LENGTH:"平均行长。" 10 DATA_LENGTH:" For MyISAM,DATA_LENGTH 是数据文件的长度,以字节为单位。For InnoDB,DATA_LENGTH 是为聚簇索引分配的大致内存量,以字节为单位。具体来说,它是聚集索引大小(以页为单位)乘以 InnoDB页面大小。" 11 MAX_DATA_LENGTH:"对于MyISAM, MAX_DATA_LENGTH是数据文件的最大长度。这是在给定数据指针大小的情况下可以存储在表中的数据的总字节数。未使用InnoDB。" 12 INDEX_LENGTH:"For MyISAM,INDEX_LENGTH 是索引文件的长度,以字节为单位。For InnoDB,INDEX_LENGTH 是为非聚簇索引分配的大致内存量,以字节为单位。具体来说,它是非聚集索引大小(以页为单位)乘以InnoDB页面大小的总和 。" 13 DATA_FREE 14 AUTO_INCREMENT 15 CREATE_TIME 16 UPDATE_TIME 17 CHECK_TIME 18 TABLE_COLLATION:"表默认排序规则。输出未显式列出表默认字符集,但排序规则名称以字符集名称开头。" 19 CHECKSUM 20 CREATE_OPTIONS:"显示 partitioned分区表。在MySQL 8.0.16之前,它还显示了ENCRYPTION为在每个表文件表空间中创建的表指定的 子句。从MySQL 8.0.16开始,如果表已加密或指定的加密与架构加密不同,它仅显示每表文件表空间的加密子句。对于在通用表空间中创建的表,不显示加密子句。要识别加密的每表和一般表空间,请查询该列。 INNODB_TABLESPACES ENCRYPTION" 21 TABLE_COMMENT:"创建表时使用的注释(或有关MySQL无法访问表信息的信息)。"
三、作用
当你处在某个数据库中,无法直接查询其他数据库的结构信息时,可以使用该数据库进行查询
举个例子:
(1)、目前处于test123数据库中,想要查询test数据库内所有表的信息
(2)、查询test数据库内test数据表的字段信息
自此即得到了test数据库下test数据表的所有字段名称,即可查询具体数据
以上是关于mysql—information_schema数据库的主要内容,如果未能解决你的问题,请参考以下文章