Information_Schema.
提供对数据库的访问元数据,有关MySQL Server的信息,例如数据库或表的名称,列的数据类型或访问权限。有时用于此信息的其他术语数据词典和系统目录。
Information_Schema.
是每个MySQL实例中的一个数据库,它存储关于MySQL服务器维护的所有其他数据库的信息。的Information_Schema.
数据库包含几个只读表。它们实际上是视图,而不是基表,因此没有与它们相关联的文件,并且不能对它们设置触发器。另外,也没有该名称的数据库目录。
尽管你可以选择Information_Schema.
作为带有的默认数据库用
语句,只能读取表的内容,而不是表现插
,更新
,或删除
他们的操作。
以下是检索信息的语句的示例Information_Schema.
:
mysql>选择table_name,table_type,fromery_schema.tables的引擎,其中table_name的table_schema ='db5'顺序;+ ------------ + ------------ + -------- + |table_name |table_type |发动机|+ ------------ + ------------ + -------- + |FK |底桌|innodb || fk2 | BASE TABLE | InnoDB | | goto | BASE TABLE | MyISAM | | into | BASE TABLE | MyISAM | | k | BASE TABLE | MyISAM | | kurs | BASE TABLE | MyISAM | | loop | BASE TABLE | MyISAM | | pk | BASE TABLE | InnoDB | | t | BASE TABLE | MyISAM | | t2 | BASE TABLE | MyISAM | | t3 | BASE TABLE | MyISAM | | t7 | BASE TABLE | MyISAM | | tables | BASE TABLE | MyISAM | | v | VIEW | NULL | | v2 | VIEW | NULL | | v3 | VIEW | NULL | | v56 | VIEW | NULL | +------------+------------+--------+ 17 rows in set (0.01 sec)
说明:该语句请求数据库中所有表的列表DB5.
,只显示三条信息:表的名称、表的类型和表的存储引擎。
字符列的定义(例如,tables.table_name.
)通常是varchar(
在哪里N
)字符集utf8N
至少64. MySQL使用此字符集的默认排序规则(UTF8_GENERAL_CI.
),以便对这类列进行所有搜索、排序、比较和其他字符串操作。
因为某些MySQL对象表示为文件,因此搜索Information_Schema.
字符串列可以受到文件系统案例灵敏度的影响。有关更多信息,请参阅第10.8.7节“使用Contation in Information_schema搜索”。
的选择……从INFORMATION_SCHEMA
声明是一种更一致的方式,可以提供各种信息提供的信息表演
MySQL支持的陈述(显示数据库
,显示表格
等等)。使用选择
与之相比,这些优点有吗表演
:
它符合Codd的规则,因为所有的访问都是在表上完成的。
类的熟悉语法
选择
声明,只需要学习某些表和列名。实现者不需要担心添加关键字。
您可以过滤,排序,连接和转换结果
Information_Schema.
查询您的应用程序需要的任何格式,例如数据结构或要解析的文本表示。这种技术与其他数据库系统更具互操作性。例如:Oracle数据库用户熟悉Oracle数据字典中的查询表。
因为表演
熟悉和广泛使用,表演
声明仍然是一种选择。事实上,随着执行Information_Schema.
,有增强功能表演
如上所述第24.8节,“SHOW语句的扩展”。
对于大多数Information_Schema.
表,每个MySQL用户都有权限访问它们,但只能看到与用户具有正确访问权限的对象对应的表中的行。在某些情况下(例如,rutine_definition.
列在Information_Schema.
惯例
表),权限不足的用户参见空值
。有些表有不同的权限要求;对于这些,在适用的表描述中提到了要求。例如,InnoDB
表(表格开头的表格Innodb_
)要求过程
特权。
相同的特权适用于选择信息Information_Schema.
并通过查看相同的信息表演
陈述。在任何一种情况下,您都必须在对象上有一些特权来查看有关它的信息。
Information_Schema.
搜索来自多个数据库的信息的查询可能会花费很长时间并影响性能。要检查查询的效率,可以使用解释
。有关使用的信息解释
输出调节Information_Schema.
查询,参见第8.2.3节,“优化INFORMATION_SCHEMA查询”。
的实现Information_Schema.
MySQL中的表结构遵循ANSI / ISO SQL:2003标准第11部分架构。我们的意图是对SQL:2003核心功能F021的常见遵守情况基本信息架构。
SQL Server 2000的用户(也遵循标准)可能会注意到强烈的相似性。但是,MySQL遗漏了许多与我们实现无关的列,并添加了特定于MySQL的列。一个这样的添加列是引擎
列在Information_Schema.
桌子
表格
尽管其他dbms使用各种各样的名称,比如SYSCAT.
或者系统
,标准名称是Information_Schema.
。
为避免使用标准或DB2,SQL Server或Oracle中保留的任何名称,我们更改了标记的某些列的名称”MySQL Extension.”。(例如,我们改变了整理
来table_collation.
在里面桌子
表)。请参阅本文末尾的保留词列表:https://web.archive.org/web/20070428032454/http://www.dbazine.com/db2/db2-disArticles/gulutzan5.。
中每个表和列的描述如下Information_Schema.
。对于每列,有三条信息:
许多章节表明表演
声明相当于一个选择
它从Information_Schema.
。为了表演
语句,如果忽略从
子句,您通常可以通过添加默认数据库来选择信息db_name.
table_schema = schema ()
条件到了在哪里
查询的子句从中检索信息Information_Schema.
表格
这些部分讨论了其他的Information_Schema.
-相关话题:
信息
Information_Schema.
特定于InnoDB
存储引擎:第24.4节“Information_schema InnoDB表”信息
Information_Schema.
针对线程池插件的表:第24.5节“Information_schema线程池表”信息
Information_Schema.
特定于connection_control.
插件:第24.6节,“INFORMATION_SCHEMA连接控制表”经常被问到的问题的答案
Information_Schema.
数据库:A.7节“MySQL 5.7常见问题:Information_schema”。Information_Schema.
查询和优化器:第8.2.3节,“优化INFORMATION_SCHEMA查询”融合的影响
Information_Schema.
比较:第10.8.7节“使用Contation in Information_schema搜索”