第23章 INFORMATI ON_SCHEMA信息数据库
第23章 I NFORMATION_SCHEMA信息数据库
目录
23. 1. I NFORMATION_S CHEMA表
23. 1. 1. INFORMAT ION_SCHEMA S CHEMATA表
23. 1.2. INFORMAT ION_SCHEMA TABLES表
23. 1.3. INFORMAT ION_SCHEMA COLUMNS表
23. 1.4. INFORMAT ION_SCHEMA STAT IST ICS表
23. 1.5. INFORMAT ION_SCHEMA USER_PRIV ILEGES表
23. 1.6. INFORMAT ION_SCHEMA SCHEMA_PRIVI LEGES表
23. 1.7. INFORMAT ION_SCHEMA TABLE_PRIVILEGES表
23. 1.8. INFORMAT ION_SCHEMA COLUMN_PRIVI LEGES表
23. 1.9. INFORMAT ION_SCHEMA CHARACTER_SETS表
23. 1. 10. INFORMATION_SCHEMA COLLAT IONS表
23. 1. 11. I NFORMATION_SCHEMA
COLLATI ON_CHARACTER_SET_APPL ICABIL ITY表
23. 1. 12. I NFORMATION_SCHEMA TABLE_CONSTRAI NTS表
23. 1. 13. INFORMATION_SCHEMA KEY_COLUMN_USAGE表
23. 1. 14. INFORMATION_SCHEMA ROUTINES表
23. 1. 15. INFORMATION_SCHEMA VIEWS表
23. 1. 16. INFORMATION_SCHEMA TRIGGERS表
23. 1. 17.其他I NFORMATION_SCHEMA表
23.2. S HOW语句的扩展
I NFORMATION_SCHEMA提供了访问数据库元数据的方式。
元数据是关于数据的数据如数据库名或表名列的数据类型或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和
“系统目录” 。
例如mysql> SELECT table_name, table_type, engine-> FROMinformation_schema. tables-> WHERE table_schema = 'db5'->
ORDER BY table_name DESC; table_name 表名 table_type 表类型 引擎v56 VIEW 视图 NULLv3 VIEW 视图
NULLv2 VIEW 视图
NULLv VIEW 视图
NULLtables BASE TABLE 基本表 MyISAMt7 BASE TABLE 基本表 MyISAMt3 BASE TABLE 基本表 MyISAMt2 BASE TABLE 基本表 MyISAMt BASE TABLE 基本表 MyISAMpk BASE TABLE 基本表 InnoDBloop BASE TABLE 基本表 MyISAMkurs BASE TABLE 基本表 MyISAMk BASE TABLE 基本表 MyISAMinto BASE TABLE 基本表 MyISAMgoto BASE TABLE 基本表 MyISAMfk2 BASE TABLE 基本表 InnoDBfk BASE TABLE 基本表 InnoDB
集合中含17行0.01秒。解释该语句请求按逆向字母顺序列出
数据库db 5中的所有表但仅显示三种信息表名表类型 以及表引擎。
INFORMATION_SCHEMA是信息数据库其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在I NF ORMAT I ON_SC HEMA中有数个只读表。它们实际上是视图而不是基本表因此你将无法看到与之相关的任何文件。
每位MySQL用户均有权访问这些表但仅限于表中的特定行在这类行中含有用户具有恰当访问权限的对象。
SELECT的优点
SELECT . . . FROM INFORMATI ON_SCHEMA语句的目的在于提供一种更为一致的方式 以访问MyS QL所支持的各种SHOW语句SHOWDATABASES、SHOW TABLES等等提供的信息。与SHOW相比使用SELECT有多项优点“
· 符合Codd规则。也就是说所有访问均是在表上进行的。· 不需要了解新语句的语法。由于他们已知道SELECT的工作方式仅需了解对象名即可。
· 实现人无需操心增加关键词方面的事宜。
· 有数百万种可能的输出变化而不是一种。这样就为对元数据有不同需求的应用程序提供了更高的灵活性。
· 由于其他DBMS也采用了这类方式移植更为容易。然而由于SHOW在My SQL的雇员和用户中十分流行如果SHOW消失可能会导致混乱 因此传统的语法方式无法给出消除S H OW的足够理由。事实上在MySQL 5. 1中还对SHOW进行了多项增强。关于这方面的介绍请参见23.2节 “S HOW语句的扩展” 。
标准
在MySQL中 I NFORMATION_SCHEMA表结构的实施遵从“ANS I/ISO
SQL:2003标准第11部分纲要” 。我们的目的在于获得与SQL:2003核心特性F021 “基本信息方案”的近似兼容。
SQL服务器2000 也遵从该标准的用户可能已注意到它们高度的相似性。但是 MySQL略去了与我们的实施方式不相关的众多列并添加了一些MySQL特有的列。其中一种列就是
I NFO RMAT I ON_S CHEMA.TAB LES表中的引擎列。
尽管其他DBMS使用了不同的名称如sy scat或系统但标准名称是I NFORMATION_SCHEMA。
事实上尽管不需要生成名为INFORMAT I ON_SCHEMA的文件我们仍提供了名为INFORMATION_SCHEMA的新数据库。可以使用USE语句将I NFORMATION_SCHEMA选择为默认数据库但访问该数据库中所含表的唯一方式是使用SELECT语句。不能在其中插入内容不能更新它们也不能删除其中的内容。
权限
当前权限SHOW要求和SELCET权限要求不存在差别。在任何一种情况下要想查看关于它的信息需要对某类对象拥有特定权限。
23. 1. I NFORMATION_SCHEMA表
23. 1. 1. INFORMAT ION_SCHEMA S CHEMATA表
23. 1.2. INFORMAT ION_SCHEMA TABLES表
23. 1.3. INFORMAT ION_SCHEMA COLUMNS表
23. 1.4. INFORMAT ION_SCHEMA STAT IST ICS表
23. 1.5. INFORMAT ION_SCHEMA USER_PRIV ILEGES表
23. 1.6. INFORMAT ION_SCHEMA SCHEMA_PRIVI LEGES表
23. 1.7. INFORMAT ION_SCHEMA TABLE_PRIVILEGES表
23. 1.8. INFORMAT ION_SCHEMA COLUMN_PRIVI LEGES表
23. 1.9. INFORMAT ION_SCHEMA CHARACTER_SETS表
23. 1. 10. INFORMATION_SCHEMA COLLAT IONS表
23. 1. 11. I NFORMATION_SCHEMA
COLLATI ON_CHARACTER_SET_APPL ICABIL ITY表
23. 1. 12. INFORMATION_SCHEMA TABLE_CONSTRAINTS表
23. 1. 13. INFORMATION_SCHEMA KEY_COLUMN_USAGE表
23. 1. 14. INFORMATION_SCHEMA ROUTINES表
23. 1. 15. INFORMATION_SCHEMA VIEWS表
23. 1. 16. INFORMATION_SCHEMA TRIGGERS表
23. 1. 17.其他I NFORMATION_SCHEMA表
下述章节说明
在下面的章节中我们选择了INFORMAT I ON_SCHEMA中的表和列。对于每一列有三类信息
· “标准名称” 指明了列的标准SQL名称。
· “SHOW名称” 指明了最近SH OW语句中的等效字段名如果有的话。
· “注释”给出了适用的附加信息。
为了避免使用标准或DB2、 SQL服务器或Oracle中保留的名称我们更改了标注为“SQL扩展”的列名。 例如在TABLES表中我们将COLLATI ON改为TABLE_COLLATION。请参见本文末尾处给出的保留字列表。 http://www.dbazine. com/gulutzan5. shtml。
字符列例如TABLE S.TABLE_NAME定义通常是VARCHAR(N) CHARACTERSET utf8其中 N至少为64。
在每一部分中指明了等效于从I NFO RMA T I ON_S CH EMA中检索信息的S ELECT语句的SHOW语句或者不存在这类语句。
注释 目前有一些丢失的列和一些混乱的列。我们正在着手解决该
问题并随着变化情况更新文档。
23. 1. 1. INFORMAT ION_SCHEMA S CHEMATA表
该方案是数据库 因此S CH EMA TA表提供了关于数据库的信息。标准名称
SHOW名称
注释
CATALOG_NAME
-
NULL
S CHEMA_NAME
Database
DEFAULT_CHARACTER_S ET_NAME
DEFAULT_COLLAT ION_NAME
S QL_PATH
NULL
注释 S QL_PATH列的之总为NULL。
下述语句是等效的
SELECT SCHEMA_NAME AS `DatabaseFROM
INFORMATION_SCHEMA.SCHEMATA[WHERE SCHEMA_NAME LIKE 'wi ld' ]SHOW DATABASES[LI KE 'wi ld' ]23. 1.2. INFORMATI ON_SCHEMA TABLES表
TABLES表给出了关于数据库中的表的信息。
标准名称
SHOW名称
注释
TABLE_CATALOG
NULL
TABLE_S CHEMA
Tab l e_. . .
TABLE_NAME
Tab l e_. . .
TABLE_TYPE
E NG I NE
Engine
MySQL扩展
VERS I ON
Version
MySQL扩展
R OW_FORMAT
Row_fo rmat
MySQL扩展
TABL E_R OWS
Rows
MySQL扩展
AVG_ROW_LENGTH
Avg_row_lengthMySQL扩展
DATA_LENGTH
Data_length
MySQL扩展
MAX_DAT A_L ENG TH
Max_data_lengthMySQL扩展
I NDE X_L ENG TH
Index_length
MySQL扩展
DATA_FREE
Data_free
MySQL扩展
A UTO_I N CRE MENT
Auto_increment
MySQL扩展
C REATE_T I ME
Create_time
MySQL扩展
UPDATE_T IME
Update_time
MySQL扩展
CHECK_T IME
Check_time
MySQL扩展
TABLE_C OLLAT I ON
Collation
MySQL扩展
CHEC KSUM
Checksum
MySQL扩展
C REATE_OPT I ONS
Create_optionsMySQL扩展
T ABL E_C OMM ENT
Comment
MySQL扩展
注释
ihostart怎么样?ihostart是一家国外新商家,主要提供cPanel主机、KVM VPS、大硬盘存储VPS和独立服务器,数据中心位于罗马尼亚,官方明确说明无视DMCA,对版权内容较为宽松。有需要的可以关注一下。目前,iHostART给出了罗马尼亚vps的优惠信息,罗马尼亚VPS无视DMCA、抗投诉vps/2核4G内存/40GB SSD/100M端口月流量2TB,€20/年。点击直达:ih...
hostround怎么样?大硬盘服务器,高防服务器。hostround,美国商家,2017年成立,正规注册公司(Company File #6180543),提供虚拟主机、VPS云主机、美国服务器、荷兰服务器租用等。现在有1款特价大硬盘独服,位于达拉斯,配置还不错,本月订购时包括免费 500Gbps DDoS 保护,有兴趣的可以关注一下。点击直达:hostround官方网站地址美国\荷兰独立服务器...
运作了18年的德国老牌机房contabo在继去年4月开办了第一个美国数据中心(中部城市:圣路易斯)后立马在本月全新上马两个数据中心:纽约、西雅图。当前,为庆祝美国独立日,美国三个数据中心的VPS全部免除设置费,VPS本身的配置很高,价格适中,有较高的性价比!官方网站:https://contabo.com/en/SSD VPSKVM虚拟,纯SSD阵列,不限制流量,自带一个IPv4内存CPUSSD带...