使用说明
在Mysql中的INFORMATION_SCHEMA提供对数据库元数据的访问,关于MySQL服务器的信息,例如数据库或表的名称,列的数据类型或访问权限。在其他系统中,有时用于说明此信息的术语是数据字典和系统目录。
INFORMATION_SCHEMA是每个MySQL实例中的一个数据库,该位置存储有关MySQL服务器维护的所有其他数据库的信息。 INFORMATION_SCHEMA数据库包含几个只读表。它们实际上是视图,而不是基本表,因此没有与它们关联的文件,并且不能在它们上设置触发器。另外,没有使用该名称的数据库目录。
虽然可以使用USE语句选择INFORMATION_SCHEMA作为默认数据库,但是只能读取表的内容,而不能对它们执行INSERT,UPDATE或DELETE操作。
字符集注意事项
字符列的定义(例如TABLES.TABLE_NAME)通常为VARCHAR(N)CHARACTER SET utf8,其中N至少为64。MySQL使用此字符集的默认排序规则(utf8_general_ci)进行所有搜索,排序,比较和在此类列上的其他字符串操作。
由于某些MySQL对象表示为文件,因此文件系统区分大小写会影响INFORMATION_SCHEMA字符串列中的搜索。
INFORMATION_SCHEMA替代SHOW语句
INFORMATION_SCHEMA语句旨在以更一致的方式提供对MySQL支持的各种SHOW语句(SHOW DATABASES,SHOW TABLES等)提供的信息的访问。与SHOW相比,使用SELECT具有以下优点:
- 它符合Codd的规则,因为所有访问都在表上完成。
- 可以使用熟悉的SELECT语句语法,只需要学习一些表名和列名。
- 实现者不必担心添加关键字。
- 您可以过滤、排序、连接和将INFORMATION_SCHEMA查询的结果转换为应用程序所需的任何格式,例如要解析的数据结构或文本表示。
- 此技术与其他数据库系统更可互操作。例如,Oracle数据库用户熟悉Oracle数据字典中的查询表。
因为SHOW是熟悉的并且被广泛使用,所以SHOW语句可以作为替代。