10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.3 mb
PDF (A4)- 41.4 mb
PDF (RPM)- 39.6 mb
HTML下载(TGZ)- 9.3 mb
HTML下载(Zip)- 9.3 mb
HTML下载(RPM)- 7.8 mb
手册页(TGZ)- 260.7 kb
手册页(Zip)- 372.0 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

26.1介绍

INFORMATION_SCHEMA提供对数据库的访问元数据,关于MySQL服务器的信息,如数据库或表的名称,列的数据类型,或访问权限。有时用于此信息的其他术语是数据字典而且系统目录

schema使用说明

INFORMATION_SCHEMA是每个MySQL实例中的一个数据库,它存储了MySQL服务器维护的所有其他数据库的信息。的INFORMATION_SCHEMA数据库包含几个只读表。它们实际上是视图,而不是基表,因此没有与它们相关联的文件,并且您不能在它们上设置触发器。另外,没有此名称的数据库目录。

尽管你可以选择INFORMATION_SCHEMA作为默认数据库使用语句时,只能读取表的内容,不能执行插入更新,或删除对它们的操作。

下面是一个检索信息的语句示例INFORMATION_SCHEMA

mysql> SELECT table_name, table_type, engine FROM information_schematable_schema = 'db5'的表+------------+------------+--------+ | table_name | table_type |引擎  | +------------+------------+--------+ | 颗|基表| InnoDB | | fk2 |基表| InnoDB | | goto |基表| MyISAM | |进入|基表| MyISAM | | k |基表| MyISAM | |科尔|基表| MyISAM | | |环基表| MyISAM | | pk |基表| InnoDB | | t |基表| MyISAM | | t2 |基表| MyISAM | | t3 |基表| MyISAM | | t7 |基表| MyISAM | | |表基本表| MyISAM | |v | VIEW | NULL | | v2 | VIEW | NULL | | v3 | VIEW | NULL | | v56 | VIEW | NULL | +------------+------------+--------+ 17 rows in set (0.01 sec)

解释:该语句请求数据库中所有表的列表db5跑车,只显示了三条信息:表的名称、类型和存储引擎。

字符集注意事项

字符列的定义(例如,表。TABLE_NAME)一般为VARCHAR (N字符集utf8在哪里N至少是64岁。MySQL对这个字符集使用默认的排序规则(utf8_general_ci)用于这些列上的所有搜索、排序、比较和其他字符串操作。

由于一些MySQL对象表示为文件,在INFORMATION_SCHEMA字符串列可能受到文件系统大小写敏感性的影响。有关更多信息,请参见章节10.8.7,“在INFORMATION_SCHEMA搜索中使用排序规则”

INFORMATION_SCHEMA作为SHOW语句的替代方案

选择……从INFORMATION_SCHEMA语句的目的是作为一种更一致的方式来提供对各种提供的信息的访问显示MySQL支持的语句(显示数据库显示表,等等)。使用选择有这些优势,相比显示

  • 它符合Codd的规则,因为所有访问都是在表上完成的。

  • 类的熟悉语法选择语句,并且只需要学习一些表和列名。

  • 实现者不需要担心添加关键字。

  • 的结果进行筛选、排序、连接和转换INFORMATION_SCHEMA查询为应用程序需要的任何格式,比如要解析的数据结构或文本表示形式。

  • 这种技术与其他数据库系统的互操作性更强。例如,Oracle数据库用户熟悉Oracle数据字典中的查询表。

因为显示是人们所熟悉和广泛使用的显示声明仍然是一种选择。其实是随着实施的INFORMATION_SCHEMA,有增强功能显示如在第26.8节,SHOW语句的扩展

信息模式和特权

对于大多数INFORMATION_SCHEMA表,每个MySQL用户都有权限访问它们,但只能看到表中与用户具有适当访问权限的对象对应的行。在某些情况下(例如,ROUTINE_DEFINITION中的列。INFORMATION_SCHEMA例程表),权限不足的用户请参见.一些表有不同的特权要求;对于这些,需求在适用的表格描述中有所提及。例如,InnoDB表(名称以。开头的表INNODB_)要求过程特权。

同样的特权适用于从INFORMATION_SCHEMA浏览相同的信息显示语句。在任何一种情况下,您都必须对对象具有某些特权才能查看有关它的信息。

性能考虑

INFORMATION_SCHEMA从多个数据库搜索信息的查询可能会花费很长时间并影响性能。要检查查询的效率,可以使用解释.有关使用解释要调优的输出INFORMATION_SCHEMA查询,看到章节8.2.3,“优化INFORMATION_SCHEMA查询”

标准的考虑

的实现。INFORMATION_SCHEMAMySQL中的表结构遵循ANSI/ISO SQL:2003标准第11部分图式.我们的目的是大致遵从SQL:2003的核心特性F021基本信息模式

SQL Server 2000的用户(它也遵循这个标准)可能会注意到一个很强的相似性。然而,MySQL省略了许多与我们的实现无关的列,并添加了特定于MySQL的列。的列就是这样一个添加的列引擎中的列。INFORMATION_SCHEMA表格

尽管其他dbms使用各种各样的名称,比如syscat系统,标准名称为INFORMATION_SCHEMA

为了避免使用标准或DB2、SQL Server或Oracle中保留的任何名称,我们更改了标记的一些列的名称MySQL扩展.(例如,我们改变了排序TABLE_COLLATION表)。请参阅本文末尾的保留词列表:https://web.archive.org/web/20070428032454/http://www.dbazine.com/db2/db2-disarticles/gulutzan5

在INFORMATION_SCHEMA参考章节中的约定

中每个表和列的描述如下INFORMATION_SCHEMA.对于每一列,有三条信息:

  • INFORMATION_SCHEMA名字属性中的列的名称INFORMATION_SCHEMA表格这对应于标准SQL名称,除非讲话现场说MySQL扩展。

  • 显示名字在最接近的位置中指示等效字段名显示表述,如果有的话。

  • 讲话在适用的情况下提供附加信息。如果这个字段是,则表示该列的值始终为.如果这个字段说MySQL扩展,列是标准SQL的MySQL扩展。

许多部分指出了显示语句等价于a选择检索信息的INFORMATION_SCHEMA.为显示属性时显示默认数据库信息的语句db_name子句中,通常可以通过添加table_schema = schema ()的条件。在哪里子句中检索信息的查询INFORMATION_SCHEMA表格

相关信息

本节将讨论其他INFORMATION_SCHEMA相关主题: