第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扩展
注释
易探云香港vps主机价格多少钱?香港vps主机租用费用大体上是由配置决定的,我们选择香港vps主机租用最大的优势是免备案vps。但是,每家服务商的机房、配置、定价也不同。我们以最基础配置为标准,综合比对各大香港vps主机供应商的价格,即可选到高性能、价格适中的香港vps主机。通常1核CPU、1G内存、2Mbps独享带宽,价格在30元-120元/月。不过,易探云香港vps主机推出四个机房的优惠活动,...
易探云怎么样?易探云(yitanyun.com)是一家知名云计算品牌,2017年成立,从业4年之久,目前主要从事出售香港VPS、香港独立服务器、香港站群服务器等,在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。目前,易探云推出免备案香港物理机服务器性价比很高,E3-1230 8 核*1/16G DDR3/SATA 1TB/香港BGP线路/20Mbps/不限流量,仅...
sharktech怎么样?sharktech (鲨鱼机房)是一家成立于 2003 年的知名美国老牌主机商,又称鲨鱼机房或者SK 机房,一直主打高防系列产品,提供独立服务器租用业务和 VPS 主机,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹,所有产品均提供 DDoS 防护。此文只整理他们家10Gbps专用服务器,此外该系列所有服务器都受到高达 60Gbps(可升级到 100Gbps)的保护。...