MySQL 超新手入门(17) 资料库资讯

(17) 资料库资讯

一个建立好并且运作中的数据库,通常会包含表格、字段与索引,为了扩充数据库的功能,也可能会加入stored routines与triggers元件。MySQL把这些数据库的资讯放在“information_schema”数据库,下列是这个数据库中主要的表格:

表格名称 说明
CHARACTER_SETS MySQL数据库支援的字符集
COLLATIONS MySQL数据库支援的collation
COLLATION_CHARACTER_SET_APPLICABILITY 字符集与collation对应资讯
COLUMNS 字段资讯
COLUMN_PRIVILEGES 字段授权资讯
KEY_COLUMN_USAGE 索引字段的限制资讯
ENGINES MySQL数据库支援的储存引擎
GLOBAL_STATUS MySQL数据库服务器状态资讯
GLOBAL_VARIABLES MySQL数据库服务器变量资讯
KEY_COLUMN_USAGE 索引键资讯
ROUTINES Stored routines资讯
SCHEMATA 数据库资讯
SESSION_STATUS 用户端连线状态资讯
SESSION_VARIABLES 用户端连线变量资讯
STATISTICS 表格索引资讯
TABLES 表格资讯
TABLE_CONSTRAINTS 表格限制资讯
TABLE_PRIVILEGES 表格授权资讯
TRIGGERS Triggers资讯
USER_PRIVILEGES 使用者授权资讯
VIEWS Views资讯

“information_schema”数据库称为“database metadata”,包含数据库元件与服务器运作的完整资讯都储存在这个数据库中。你不须要自己建立与维护“information_schema”数据库,它是由MySQL数据库服务器负责建立与维护的。你只能够在需要的时候,使用“SELECT”叙述来查询储存在里面的资料。

下列的查询叙述可以传回MySQL数据库服务器中所有的stored routines资讯:

mysql_17_snap_01

在之前所讨论过的查询叙述用法,都可以用来查询“information_schema”数据库:

mysql_17_snap_02

2 SHOW指令

除了使用查询叙述直接查询“information_schema”数据库中的资讯外,MySQL数据库服务器供有许多不同用法的“SHOW”指令,同样可以查询数据库资讯。“SHOW”指令是MySQL数据库服务器专用的指令,并不是标准的SQL叙述。

2.1 数据库元件资讯

下列的“SHOW”指令语法可以查询MySQL数据库服务器中的数据库资讯:

mysql_17_snap_03

“SHOW DATABASES”指令也可以搭配使用“LIKE”关键字:

mysql_17_snap_04

注:字串样式的设定在“基础查询、条件查询、字串样式”中讨论。

下列的“SHOW”指令语法可以查询MySQL数据库服务器中的表格资讯:

mysql_17_snap_05

“SHOW TABLES”叙述会传回目前使用中数据库的所有表格名称,你可以搭配“FROM”与“LIKE”关键字查询需要的表格资讯:

mysql_17_snap_06

“SHOW TABLES”叙述只会传回表格名称,如果需要详细的表格资讯,可以使用下列的“SHOW TABLE STATUS”叙述:

mysql_17_snap_07

“SHOW TABLE STATUS”叙述可以搭配“LIKE”或“WHERE”关键字:

mysql_17_snap_08

下列的“SHOW”指令语法可以查询MySQL数据库服务器中的字段资讯:

mysql_17_snap_09

“SHOW COLUMNS FROM 表格”叙述会传回目前使用中数据库,指定表格名称的字段资讯,你可以搭配第二个“FROM”关键字指定数据库:

mysql_17_snap_10

下列的“SHOW”指令语法可以查询MySQL数据库服务器中的索引资讯:

mysql_17_snap_11

“SHOW INDEX FROM 表格”叙述会传回目前使用中数据库,指定表格名称的索引资讯,你可以搭配第二个“FROM”关键字指定数据库:

mysql_17_snap_12

下列的“SHOW”指令语法可以查询MySQL数据库服务器中的trigger资讯:

mysql_17_snap_13

“SHOW TRIGGERS”叙述会传回目前使用中数据库的所有trigger资讯,你可以搭配“FROM”关键字指定数据库;“LIKE”或“WHERE”关键字可以设定查询条件:

mysql_17_snap_14

2.2 建立元件资讯

下列的“SHOW”指令语法可以查询MySQL数据库服务器中建立各种元件的详细资讯:

指令 说明
SHOW CREATE DATABASE 数据库名称 查询建立数据库的详细资讯
SHOW CREATE TABLE 表格名称 查询建立表格的详细资讯
SHOW CREATE FUNCTION 名称 查询建立Function的详细资讯
SHOW CREATE PROCEDURE 名称 查询建立Procedure的详细资讯
SHOW CREATE VIEW 名称 查询建立View的详细资讯

下列的叙述可以查询建立“world.city”表格的叙述:

mysql_17_snap_15

2.3 字符集与collation

下列的“SHOW”指令语法可以查询MySQL数据库服务器中的字符集与collation资讯:

mysql_17_snap_16

“SHOW CHARACTER SET”与“SHOW COLLATION”叙述都可以搭配“LIKE”或“WHERE”关键字设定查询条件:

mysql_17_snap_17

2.4 其它资讯

下列的“SHOW”指令语法可以查询MySQL数据库服务器中支援的储存引擎资讯:

mysql_17_snap_18

下列的“SHOW”指令语法可以查询MySQL数据库服务器状态与系统变量资讯:

mysql_17_snap_19

下列的叙述可以查询MySQL数据库服务器中与字符集相关的变量资讯:

mysql_17_snap_20

3 DESCRIBE指令

“DESCRIBE”是MySQL数据库服务器提供的特殊指令,并不是标准的SQL叙述。它可以查询指定表格的字段资讯:

mysql_17_snap_21

“DESCRIBE”叙述可以指定要查询的字段名称,或是使用样版字串设定查询条件:

mysql_17_snap_22

4 mysqlshow

MySQL数据库服务器提供一个可以在命令提示字符下执行的工具程式“mysqlshow”:

mysql_17_snap_24

“mysqlshow”工具程式有下列几种不同的用法:

mysql_17_snap_25