欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

MYSQL-INFORMATION_SCHEMA信息数据库(MYSQL注入猜解)

来源:转载 作者:佚名 时间:2008-12-28 TAG: 我要投稿
MYSQL ROOT权限注入的时候需要用到的系统表 ....通过以下这些表就可以猜解到有那些库 有那些表 有那些字段最后猜解数据....

目录

23.1. INFORMATION_SCHEMA表 23.1.1. INFORMATION_SCHEMA SCHEMATA表 23.1.2. INFORMATION_SCHEMA TABLES表 23.1.3. INFORMATION_SCHEMA COLUMNS表 23.1.4. INFORMATION_SCHEMA STATISTICS表 23.1.5. INFORMATION_SCHEMA USER_PRIVILEGES表 23.1.6. INFORMATION_SCHEMA SCHEMA_PRIVILEGES表 23.1.7. INFORMATION_SCHEMA TABLE_PRIVILEGES表 23.1.8. INFORMATION_SCHEMA COLUMN_PRIVILEGES表 23.1.9. INFORMATION_SCHEMA CHARACTER_SETS表 23.1.10. INFORMATION_SCHEMA COLLATIONS表 23.1.11. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表 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. 其他INFORMATION_SCHEMA表23.2. SHOW语句的扩展INFORMATION_SCHEMA提供了访问数据库元数据的方式。

元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。
例如:

mysql> SELECT table_name, table_type, engine-> FROM information_schema.tables-> WHERE table_schema = 'db5'-> ORDER BY table_name DESC;


table_name(表名)
table_type(表类型)
引擎
v56   VIEW(视图) NULL
v3 VIEW(视图)
NULL
v2 VIEW(视图)
NULL
v VIEW(视图)
NULL
tables BASE TABLE(基本表) MyISAM
t7 BASE TABLE(基本表) MyISAM
t3 BASE TABLE(基本表) MyISAM
t2 BASE TABLE(基本表) MyISAM
t BASE TABLE(基本表) MyISAM
pk BASE TABLE(基本表) InnoDB
loop BASE TABLE(基本表) MyISAM
kurs BASE TABLE(基本表) MyISAM
k BASE TABLE(基本表) MyISAM
into BASE TABLE(基本表) MyISAM
goto BASE TABLE(基本表) MyISAM
fk2   BASE TABLE(基本表) InnoDB
fk BASE TABLE(基本表) InnoDB

集合中含17行(0.01秒)。解释:该语句请求按逆向字母顺序列出数据库db5中的所有表,但仅显示三种信息:表名,表类型,以及表引擎。
INFORMATION_SCHEMA是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。

每位MySQL用户均有权访问这些表,但仅限于表中的特定行,在这类行中含有用户具有恰当访问权限的对象。

SELECT的优点

SELECT ... FROM INFORMATION_SCHEMA语句的目的在于提供一种更为一致的方式,以访问MySQL所支持的各种SHOW语句(SHOW DATABASES、SHOW TABLES等等)提供的信息。与SHOW相比,使用SELECT有多项优点“
·
符合Codd规则。也就是说,所有访问均是在表上进行的。
·
不需要了解新语句的语法。由于他们已知道SELECT的工作方式,仅需了解对象名即可。
·
实现人无需操心增加关键词方面的事宜。
·
有数百万种可能的输出变化,而不是一种。这样,就为对元数据有不同需求的应用程序提供了更高的灵活性。
·
由于其他DBMS也采用了这类方式,移植更为容易。

然而,由于SHOW在MySQL的雇员和用户中十分流行,如果SHOW消失,可能会导致混乱,因此传统的语法方式无法给出消除SHOW的足够理由。事实上,在MySQL 5.1中,还对SHOW进行了多项增强。关于这方面的介绍,请参见23.2节,“SHOW语句的扩展”。

标准
在MySQL中,INFORMATION_SCHEMA表结构的实施遵从“ANSI/ISO SQL:2003标准,第11部分纲要”。我们的目的在于,获得与SQL:2003核心特性F021“基本信息方案”的近似兼容。

SQL服务器2000(也遵从该标准)的用户可能已注意到它们高度的相似性。但是,MySQL略去了与我们的实施方式不相关的众多列,并添加了一些MySQL特有的列。其中一种列就是INFORMATION_SCHEMA.TABLES表中的引擎列。

尽管其他DBMS使用了不同的名称,如syscat或系统,但标准名称是INFORMATION_SCHEMA。

事实上,尽管不需要生成名为INFORMATION_SCHEMA的文件,我们仍提供了名为INFORMATION_SCHEMA的新数据库。可以使用USE语句将INFORMATION_SCHEMA选择为默认数据库,但访问该数据库中所含表的唯一方式是使用SELECT语句。不能在其中插入内容,不能更新它们,也不能删除其中的内容。

权限

当前权限(SHOW)要求和SELCET权限要求不存在差别。在任何一种情况下,要想查看关于它的信息,需要对某类对象拥有特定权限。
23.1. INFORMATION_SCHEMA表


23.1.1. INFORMATION_SCHEMA SCHEMATA表 23.1.2. INFORMATION_SCHEMA TABLES表 23.1.3. INFORMATION_SCHEMA COLUMNS表 23.1.4. INFORMATION_SCHEMA STATISTICS表 23.1.5. INFORMATION_SCHEMA USER_PRIVILEGES表 23.1.6. INFORMATION_SCHEMA SCHEMA_PRIVILEGES表 23.1.7. INFORMATION_SCHEMA TABLE_PRIVILEGES表 23.1.8. INFORMATION_SCHEMA COLUMN_PRIVILEGES表 23.1.9. INFORMATION_SCHEMA CHARACTER_SETS表 23.1.10. INFORMATION_SCHEMA COLLATIONS表 23.1.11. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表 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. 其他INFORMATION_SCHEMA表

下述章节说明

在下面的章节中,我们选择了INFORMATION_SCHEMA中的表和列。对于每一列,有三类信息:
·
“标准名称”:指明了列的标准SQL名称。
·
“SHOW名称”:指明了最近SHOW语句中的等效字段名,如果有的话。
·
“注释”给出了适用的附加信息。

为了避免使用标准或DB2、SQL服务器或Oracle中保留的名称,我们更改了标注为“SQL扩展”的列名。(例如,在TABLES表中,我们将COLLATION改为TABLE_COLLATION)。请参见本文末尾处给出的保留字列表。http://www.dbazine.com/gulutzan5.shtml

字符列(例如TABLES.TABLE_NAME)定义通常是VARCHAR(N) CHARACTER SET utf8,其中,N至少为64。

在每一部分中,指明了等效于从INFORMATION_SCHEMA中检索信息的SELECT语句的SHOW语句,或者不存在这类语句。
注释:目前,有一些丢失的列和一些混乱的列。我们正在着手解决该问题,并随着变化情况更新文档。
23.1.1. INFORMATION_SCHEMA SCHEMATA表


该方案是数据库,因此SCHEMATA表提供了关于数据库的信息。

标准名称
SHOW名称
注释
CATALOG_NAME
-
NULL
SCHEMA_NAME


Database
DEFAULT_CHARACTER_SET_NAME




DEFAULT_COLLATION_NAME




SQL_PATH


NULL

注释:SQL_PATH列的之总为NULL。

下述语句是等效的:

SELECT SCHEMA_NAME AS `DatabaseFROM INFORMATION_SCHEMA.SCHEMATA[WHERE SCHEMA_NAME LIKE 'wild']
SHOW DATABASES[LIKE 'wild']23.1.2. INFORMATION_SCHEMA TABLES表


TABLES表给出了关于数据库中的表的信息。

标准名称
SHOW名称
注释
TABLE_CATALOG


NULL
TABLE_SCHEMA
Table_...


TABLE_NAME
Table_...


TABLE_TYPE




ENGINE
Engine
MySQL扩展
VERSION
Version
MySQL扩展
ROW_FORMAT
Row_format
MySQL扩展
TABLE_ROWS
Rows
MySQL扩展
AVG_ROW_LENGTH
Avg_row_length
MySQL扩展
DATA_LENGTH
Data_length
MySQL扩展
MAX_DATA_LENGTH
Max_data_length
MySQL扩展
INDEX_LENGTH
Index_length
MySQL扩展
DATA_FREE
Data_free
MySQL扩展
AUTO_INCREMENT
Auto_increment
MySQL扩展
CREATE_TIME
Create_time
MySQL扩展
UPDATE_TIME
Update_time
MySQL扩展
CHECK_TIME
Check_time
MySQL扩展
TABLE_COLLATION
Collation
MySQL扩展
CHECKSUM
Checksum
MySQL扩展
CREATE_OPTIONS
Create_options
MySQL扩展
TABLE_COMMENT
Comment
MySQL扩展

注释:
·
TABLE_SCHEMA和TABLE_NAME是SHOW显示中的单个字段,例如Table_in_db1。
·
TABLE_TYPE(表类型)应是BASE TABLE(基本表)或VIEW(视图)。如果表是临时性的,TABLE_TYPE = TEMPORARY。(没有临时视图,因此,因此不存在歧义)。
·
如果表位于INFORMATION_SCHEMA数据库中,TABLE_ROWS列为NULL。对于InnoDB表,在SQL优化中,行计数仅是大概估计值。
·
没有关于表默认字符集的任何信息。TABLE_COLLATION处于关闭状态,原因在于校对名称以字符集名称开头。
下述语句是等效的:

SELECT table_name FROM INFORMATION_SCHEMA.TABLES  [WHERE table_schema = 'db_name']  [WHERE|AND table_name LIKE 'wild']
SHOW TABLES  [FROM db_name]  [LIKE 'wild']
23.1.3. INFORMATION_SCHEMA COLUMNS表


COLUMNS表给出了表中的列信息。

标准名称
SHOW名称
注释
TABLE_CATALOG


NULL
TABLE_SCHEMA




TABLE_NAME




COLUMN_NAME
Field


ORDINAL_POSITION


参见注释
COLUMN_DEFAULT
Default


IS_NULLABLE
Null


DATA_TYPE
Type


CHARACTER_MAXIMUM_LENGTH
Type


CHARACTER_OCTET_LENGTH




NUMERIC_PRECISION
Type


NUMERIC_SCALE
Type


CHARACTER_SET_NAME




COLLATION_NAME
Collation


COLUMN_TYPE
Type
MySQL扩展
COLUMN_KEY
Key
MySQL扩展
EXTRA
Extra
MySQL扩展
COLUMN_COMMENT
Comment
MySQL扩展

注释:
·
在SHOW中,类型显示包括来自数个不同COLUMNS列的值。
·
ORDINAL_POSITION有必要,这是因为,你可能会在某一天需要ORDER BY ORDINAL_POSITION(按ORDINAL_POSITION排序)。不同于SHOW,SELECT没有自动排序功能。
·
CHARACTER_OCTET_LENGTH应与CHARACTER_MAXIMUM_LENGTH相同,但多字节字符集除外。
·
CHARACTER_SET_NAME可由Collation(校对)导出。例如,如果给出了“SHOW FULL COLUMNS FROM t”,在Collation(校对)列中将见到latin1_swedish_ci的值,字符集由第1个下划线前的名称指明。latin1.
下述语句是等效的:
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT  FROM INFORMATION_SCHEMA.COLUMNS  WHERE table_name = 'tbl_name'  [AND table_schema = 'db_name']  [AND column_name LIKE 'wild']
SHOW COLUMNS  FROM tbl_name  [FROM db_name]  [LIKE wild]
23.1.4. INFORMATION_SCHEMA STATISTICS表


STATISTICS表给出了关于表索引的信息。

标准名称
SHOW名称
注释
TABLE_CATALOG


NULL
TABLE_SCHEMA


=数据库
TABLE_NAME
Table


NON_UNIQUE
Non_unique


INDEX_SCHEMA


=数据库
INDEX_NAME
Key_name


SEQ_IN_INDEX
Seq_in_index


COLUMN_NAME
Column_name


COLLATION
Collation


CARDINALITY
Cardinality


SUB_PART
Sub_part
MySQL扩展
PACKED
Packed
MySQL扩展
NULLABLE
Null
MySQL扩展
INDEX_TYPE
Index_type
MySQL扩展
COMMENT
Comment
MySQL扩展
注释:
·
没有关于这些索引的标准表。上面的列表与SQL服务器2000中sp_statistics返回的值类似。不同之处在于用CATALOG替换了QUALIFIER,并用SCHEMA替换了OWNER。
显而易见,前述表和SHOW INDEX的输出均是由相同的父对象导出的。因此,相关性已关闭。
下述语句是等效的:
SELECT * FROM INFORMATION_SCHEMA.STATISTICS  WHERE table_name = 'tbl_name'  [AND table_schema = 'db_name']
SHOW INDEX  FROM tbl_name  [FROM db_name]
23.1.5. INFORMATION_SCHEMA USER_PRIVILEGES表


USER_PRIVILEGES(用户权限)表给出了关于全程权限的信息。该信息源自mysql.user授权表。
标准名称
SHOW名称
注释
GRANTEE


例如“user'@'host”
TABLE_CATALOG


NULL
PRIVILEGE_TYPE




IS_GRANTABLE




注释:
·
这是一个非标准表。其值来自mysql.user表。

23.1.6. INFORMATION_SCHEMA SCHEMA_PRIVILEGES表


SCHEMA_PRIVILEGES(方案权限)表给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。
标准名称
SHOW名称
注释
GRANTEE


例如“user'@'host”
TABLE_CATALOG


NULL
TABLE_SCHEMA




PRIVILEGE_TYPE




IS_GRANTABLE




注释:
·
这是一个非标准表。其值来自mysql.db表。

23.1.7. INFORMATION_SCHEMA TABLE_PRIVILEGES表


TABLE_PRIVILEGES(表权限)表给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。
标准名称
SHOW名称
注释
GRANTEE


例如“user'@'host”
TABLE_CATALOG


NULL
TABLE_SCHEMA




TABLE_NAME




PRIVILEGE_TYPE




IS_GRANTABLE




下述语句不等效:
SELECT ... FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
SHOW GRANTS ...PRIVILEGE_TYPE可以包含这些值之一(仅能一个):SELECT、INSERT、UPDATE、REFERENCES、ALTER、INDEX、DROP、CREATE VIEW。

23.1.8. INFORMATION_SCHEMA COLUMN_PRIVILEGES表


COLUMN_PRIVILEGES(列权限)表给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。
标准名称
SHOW名称
注释
GRANTEE


例如“user'@'host”
TABLE_CATALOG


NULL
TABLE_SCHEMA




TABLE_NAME




COLUMN_NAME




PRIVILEGE_TYPE




IS_GRANTABLE




注释:
·
在SHOW FULL COLUMNS(显示完整列)的输出中,权限值位于一个字段并采用小写形式,例如select、insert、update、references。在COLUMN_PRIVILEGES中,每种权限占一行,并为大写形式。
·
PRIVILEGE_TYPE可以包含这些值之一(仅能一个):SELECT, INSERT, UPDATE, REFERENCES.
·
如果用户有GRANT OPTION权限,那么IS_GRANTABLE应为YES。否则,IS_GRANTABLE应为NO。在输出中,不会将GRANT OPTION作为单独权限列出。
下述语句不等效:
SELECT ... FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES
SHOW GRANTS ...
23.1.9. INFORMATION_SCHEMA CHARACTER_SETS表


CHARACTER_SETS(字符集)表提供了关于可用字符集的信息。
标准名称
SHOW名称
注释
CHARACTER_SET_NAME
Charset


DEFAULT_COLLATE_NAME
Default collation


DESCRIPION
Description
MySQL扩展
MAXLEN
Maxlen
MySQL扩展
注释:
·
我们增加了两个非标准列,分别对应于SHOW CHARACTER SET输出的Description(描述)和Maxlen(最大长度)列。
下述语句是等效的:
SELECT * FROM INFORMATION_SCHEMA.CHARACTER_SETS  [WHERE name LIKE 'wild']
SHOW CHARACTER SET  [LIKE 'wild']
23.1.10. INFORMATION_SCHEMA COLLATIONS表


COLLATIONS表提供了关于各字符集的对照信息。
标准名称
SHOW名称
注释
COLLATION_NAME
Collation


注释:
·
我们增加了5个非标准列,分别对应于SHOW COLLATION输出的Charset、Id、Default、Compiled和Sortlen列。
下述语句是等效的:
SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLLATIONS  [WHERE collation_name LIKE 'wild']
SHOW COLLATION  [LIKE 'wild']
23.1.11. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表


COLLATION_CHARACTER_SET_APPLICABILITY表指明了可用于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。
标准名称
SHOW名称
注释
COLLATION_NAME
Collation


CHARACTER_SET_NAME
Charset



23.1.12. INFORMATION_SCHEMA TABLE_CONSTRAINTS表


TABLE_CONSTRAINTS表描述了存在约束的表。
标准名称
SHOW名称
注释
CONSTRAINT_CATALOG


NULL
CONSTRAINT_SCHEMA




CONSTRAINT_NAME




TABLE_SCHEMA




TABLE_NAME




CONSTRAINT_TYPE




注释:
·
CONSTRAINT_TYPE的值可以是UNIQUE(唯一)、PRIMARY KEY(主键)或FOREIGN KEY(外键)。
·
当Non_unique字段为0时,UNIQUE和PRIMARY KEY信息与SHOW INDEX输出的Key_name字段中给出的信息基本相同。
·
CONSTRAINT_TYPE列可包含下述值之一:UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK。这是一个CHAR(非ENUM)列。在我们支持CHECK前,CHECK值不可用。

23.1.13. INFORMATION_SCHEMA KEY_COLUMN_USAGE表


KEY_COLUMN_USAGE表描述了具有约束的键列。
标准名称
SHOW名称
注释
CONSTRAINT_CATALOG


NULL
CONSTRAINT_SCHEMA




CONSTRAINT_NAME




TABLE_CATALOG




TABLE_SCHEMA




TABLE_NAME




COLUMN_NAME




ORDINAL_POSITION




POSITION_IN_UNIQUE_CONSTRAINT




REFERENCED_TABLE_SCHEMA




REFERENCED_TABLE_NAME




REFERENCED_COLUMN_NAME




注释:
·
如果约束为外键,这就是外键列,而不是外键引用的列。
·
ORDINAL_POSITION的值是列在约束中的位置,而不是列在表中的位置。列位置采用从1开始的数值编号。
·
对于“唯一”和“主键”约束,POSITION_IN_UNIQUE_CONSTRAINT的值为NULL。对于“外键”约束,它是所引用表内键中的顺序位置。
例如,假定有两个具有下述定义的表t1和t3:
CREATE TABLE t1(s1 INT,s2 INT,s3 INT,PRIMARY KEY(s3)) ENGINE=InnoDB;
CREATE TABLE t3(s1 INT,s2 INT,s3 INT,KEY(s1),CONSTRAINT CO FOREIGN KEY (s2) REFERENCES t1(s3)) ENGINE=InnoDB;对于这两个表,KEY_COLUMN_USAGE表有两行:
o
一行含有CONSTRAINT_NAME='PRIMARY', TABLE_NAME='t1', COLUMN_NAME='s3', ORDINAL_POSITION=1, POSITION_IN_UNIQUE_CONSTRAINT=NULL。
o
另一行含有CONSTRAINT_NAME='CO', TABLE_NAME='t3', COLUMN_NAME='s2', ORDINAL_POSITION=1, POSITION_IN_UNIQUE_CONSTRAINT=1。

23.1.14. INFORMATION_SCHEMA ROUTINES表


ROUTINES表提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。
名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列,如果有的话。
标准名称
mysql.proc
注释
SPECIFIC_NAME
specific_name


ROUTINE_CATALOG


NULL
ROUTINE_SCHEMA
db


ROUTINE_NAME
name


ROUTINE_TYPE
type
{PROCEDURE|FUNCTION}
DTD_IDENTIFIER


(数据类型描述符)
ROUTINE_BODY


SQL
ROUTINE_DEFINITION
body


EXTERNAL_NAME


NULL
EXTERNAL_LANGUAGE
language
NULL
PARAMETER_STYLE


SQL
IS_DETERMINISTIC
is_deterministic


SQL_DATA_ACCESS
sql_data_access


SQL_PATH


NULL
SECURITY_TYPE
security_type


CREATED
created


LAST_ALTERED
modified


SQL_MODE
sql_mode
MySQL扩展
ROUTINE_COMMENT
comment
MySQL扩展
DEFINER
definer
MySQL扩展
注释:
·
MySQL计算EXTERNAL_LANGUAGE,因此:
o
如果mysql.proc.language='SQL',那么EXTERNAL_LANGUAGE为NULL。
o
否则,EXTERNAL_LANGUAGE为mysql.proc.language中的值。然而,由于尚没有外部语言,因此该值总为NULL。

23.1.15. INFORMATION_SCHEMA VIEWS表


VIEWS表给出了关于数据库中的视图的信息。
标准名称
SHOW名称
注释
TABLE_CATALOG


NULL
TABLE_SCHEMA




TABLE_NAME




VIEW_DEFINITION




CHECK_OPTION




IS_UPDATABLE




DEFINER




SECURITY_TYPE




注释:
·
有一种新的权限SHOW VIEW,如果没有它,将无法看到VIEWS表。
·
VIEW_DEFINITION列含有你在SHOW CREATE VIEW所生成的Create Table字段中见到的大多数信息。跳过SELECT前的单词,并跳过具有CHECK OPTION(检查选项)的单词。例如,如果初始语句是:
·
CREATE VIEW v AS·
  SELECT s2,s1 FROM t·
  WHERE s1 > 5·
  ORDER BY s1·
  WITH CHECK OPTION;那么视图定义为:
SELECT s2,s1 FROM t WHERE s1 > 5 ORDER BY s1·
CHECK_OPTION列的值总为NONE。
·
如果视图是可更新的,IS_UPDATABLE列的值为YES,如果视图是不可更新的,IS_UPDATABLE列的值为NO。
·
DEFINER列指明了定义视图的人。SECURITY_TYPE的值为DEFINER或INVOKER。

23.1.16. INFORMATION_SCHEMA TRIGGERS表


TRIGGERS表提供了关于触发程序的信息。
必须有SUPER权限才能查看该表。
标准名称
SHOW名称
注释
TRIGGER_CATALOG


NULL
TRIGGER_SCHEMA




TRIGGER_NAME
Trigger


EVENT_MANIPULATION
Event


EVENT_OBJECT_CATALOG


NULL
EVENT_OBJECT_SCHEMA




EVENT_OBJECT_TABLE
Table


ACTION_ORDER


0
ACTION_CONDITION


NULL
ACTION_STATEMENT
Statement


ACTION_ORIENTATION


ROW
ACTION_TIMING
Timing


ACTION_REFERENCE_OLD_TABLE


NULL
ACTION_REFERENCE_NEW_TABLE


NULL
ACTION_REFERENCE_OLD_ROW


OLD
ACTION_REFERENCE_NEW_ROW


NEW
CREATED


NULL (0)
SQL_MODE




注释:
·
TRIGGER_SCHEMA和TRIGGER_NAME列中分别含有相应数据库的名称以及触发程序的名称,在该数据库中,含有该触发程序。
·
EVENT_MANIPULATION列含有下述值之一:INSERT、DELETE、或UPDATE。
·
正如第21章:触发程序中指出的那样,每个触发程序均与一个表准确相关。EVENT_OBJECT_SCHEMA和EVENT_OBJECT_TABLE列包含相应的数据库和表名,在该数据库中,含有该表。
·
ACTION_ORDER语句含有触发程序动作(在相同表上所有类似触发程序列表中)的顺序位置。目前该值总为0,这是因为在相同表上具有相同EVENT_MANIPULATION和ACTION_TIMING的触发程序不能超过1个。
·
ACTION_STATEMENT列含有激活了触发程序时将要执行的语句。这与SHOW TRIGGERS输出的Statement(语句)列中显示的文本相同。注意,该文本采用了UTF-8编码方式。
·
ACTION_ORIENTATION列总含有值“ROW”。
·
ACTION_TIMING列含有下述两种值之一:“BEFORE”或“AFTER”。
·
列ACTION_REFERENCE_OLD_ROW和ACTION_REFERENCE_NEW_ROW分别含有旧的和新的列标识符。这意味着ACTION_REFERENCE_OLD_ROW总含有值“OLD”,ACTION_REFERENCE_NEW_ROW总含有值“NEW”。
·
SQL_MODE列显示了创建触发程序时有效的服务器SQL模式(无论当前的服务器SQL模式为何,只要激活了触发程序,它将保持有效)。该列的可能取值范围与sql_mode系统变量的取值范围相同。请参见5.3.2节,“SQL服务器模式”。
·
在下述列中,目前总含有NULL:TRIGGER_CATALOG,EVENT_OBJECT_CATALOG,ACTION_CONDITION,ACTION_REFERENCE_OLD_TABLE,ACTION_REFERENCE_NEW_TABLE和CREATED。
例如,使用21.3节,“使用触发程序”中定义的触发程序ins_sum。
mysql> SELECT * FROM INFORMATION_SCHEMA.TRIGGERS\G*************************** 1. row *************************** TRIGGER_CATALOG: NULLTRIGGER_SCHEMA: test TRIGGER_NAME: ins_sum  EVENT_MANIPULATION: INSERTEVENT_OBJECT_CATALOG: NULL EVENT_OBJECT_SCHEMA: test  EVENT_OBJECT_TABLE: account ACTION_ORDER: 0ACTION_CONDITION: NULLACTION_STATEMENT:  SET @sum = @sum + NEW.amount  ACTION_ORIENTATION: ROW ACTION_TIMING: BEFOREACTION_REFERENCE_OLD_TABLE: NULLACTION_REFERENCE_NEW_TABLE: NULL  ACTION_REFERENCE_OLD_ROW: OLD  ACTION_REFERENCE_NEW_ROW: NEWCREATED: NULL1 row in set (1.54 sec)另请参见13.5.4.20节,“SHOW TRIGGERS语法”。

23.1.17. 其他INFORMATION_SCHEMA表




我们打算实施附加的INFORMATION_SCHEMA表。尤其是,我们确认了对INFORMATION_SCHEMA.PARAMETERS和INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS的需求。 23.2. SHOW语句的扩展


某些SHOW语句的扩展伴随着INFORMATION_SCHEMA的实施:
·
SHOW可用于获取关于INFORMATION_SCHEMA本身结构的信息。
·
一些SHOW语句允许使用WHERE子句,这样,在指定需要显示的行时,可更为灵活。
INFORMATION_SCHEMA是一种信息数据库,因此,在SHOW DATABASES的输出中,包含其名称。与此类似,SHOW TABLES可与INFORMATION_SCHEMA一起使用,以获取表清单。

mysql> SHOW TABLES FROM INFORMATION_SCHEMA;+---------------------------------------+| Tables_in_information_schema|+---------------------------------------+| SCHEMATA|| TABLES|| COLUMNS || CHARACTER_SETS || COLLATIONS  || COLLATION_CHARACTER_SET_APPLICABILITY || ROUTINES|| STATISTICS  || VIEWS || TRIGGERS|| USER_PRIVILEGES|| SCHEMA_PRIVILEGES  || TABLE_PRIVILEGES|| COLUMN_PRIVILEGES  || TABLE_CONSTRAINTS  || KEY_COLUMN_USAGE|+---------------------------------------+SHOW COLUMNS和DESCRIBE能够显示单独INFORMATION_SCHEMA表中的列信息。

扩展了一些SHOW语句,允许使用WHERE子句:
SHOW CHARACTER SETSHOW COLLATIONSHOW COLUMNSSHOW DATABASESSHOW FUNCTION STATUSSHOW KEYSSHOW OPEN TABLESSHOW PROCEDURE STATUSSHOW STATUSSHOW TABLE STATUSSHOW TABLESSHOW VARIABLES如果有WHERE子句的话,将根据SHOW语句显示的列名进行计算。例如,SHOW COLLATION语句可产生这些输出列:

例如,SHOW CHARACTER SET语句可产生这些输出列:

mysql> SHOW CHARACTER SET;
Charset 描述 默认校对 最大长度
big5 Big5 Traditional Chinese big5_chinese_ci 2
dec8 DEC West European dec8_swedish_ci 1
cp850 DOS West European cp850_general_ci 1
hp8 HP West European hp8_english_ci 1
koi8r KOI8-R Relcom Russian koi8r_general_ci 1
latin1 cp1252 West European   latin1_swedish_ci 1
latin2 ISO 8859-2 Central European latin2_general_ci 1

要想与SHOW CHARACTER SET一起使用WHERE子句,应引用这些列名称。例如,在下面的语句中,给出了用于默认校对且含有字符串“japanese”的字符集的信息:

mysql> SHOW CHARACTER SET WHERE `Default collation` LIKE '%japanese%';

Charset
描述
默认校对 最大长度

ujis
EUC-JP Japanese ujis_japanese_ci 3
sjis Shift-JIS Japanese   sjis_japanese_ci 2
cp932 SJIS for Windows Japanese cp932_japanese_ci 2

eucjpms
UJIS for Windows Japanese eucjpms_japanese_ci 3


该语句显示了多字节字符集。

mysql> SHOW CHARACTER SET WHERE Maxlen > 1;

Charset
描述
默认校对 最大长度
big5 Big5 Traditional Chinese   big5_chinese_ci 2

ujis
EUC-JP Japanese ujis_japanese_ci 3
sjis Shift-JIS Japanese   sjis_japanese_ci 2
euckr EUC-KR Korean euckr_korean_ci 2
gb2312   GB2312 Simplified Chinese gb2312_chinese_ci 2

gbk
GBK Simplified Chinese gbk_chinese_ci 2
utf8 UTF-8 Unicode utf8_general_ci 3
ucs2 UCS-2 Unicode ucs2_general_ci 2
cp932 SJIS for Windows Japanese cp932_japanese_ci 2

eucjpms
UJIS for Windows Japanese eucjpms_japanese_ci 3
【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载