**目录**
[TOC]
# 1 information_schema数据库
一个建立好并且运作中的数据库,通常会包含表格、字段与索引,为了扩充数据库的功能,也可能会加入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](http://box.kancloud.cn/2015-09-15_55f7f3ebc275e.png)](http://box.kancloud.cn/2015-07-18_55a9d67a9dd28.png)
在之前所讨论过的查询叙述用法,都可以用来查询“information_schema”数据库:
[![mysql_17_snap_02](http://box.kancloud.cn/2015-09-15_55f7f3ec11ec2.png)](http://box.kancloud.cn/2015-07-18_55a9d67b729b4.png)
# 2 SHOW指令
除了使用查询叙述直接查询“information_schema”数据库中的资讯外,MySQL数据库服务器供有许多不同用法的“SHOW”指令,同样可以查询数据库资讯。“SHOW”指令是MySQL数据库服务器专用的指令,并不是标准的SQL叙述。
## 2.1 数据库元件资讯
下列的“SHOW”指令语法可以查询MySQL数据库服务器中的数据库资讯:
[![mysql_17_snap_03](http://box.kancloud.cn/2015-09-15_55f7f3ec560ad.png)](http://box.kancloud.cn/2015-07-18_55a9d68dde284.png)
“SHOW DATABASES”指令也可以搭配使用“LIKE”关键字:
[![mysql_17_snap_04](http://box.kancloud.cn/2015-09-15_55f7f3ecaddd5.png)](http://box.kancloud.cn/2015-07-18_55a9d6950b3f9.png)
注:字串样式的设定在“基础查询、条件查询、字串样式”中讨论。
下列的“SHOW”指令语法可以查询MySQL数据库服务器中的表格资讯:
[![mysql_17_snap_05](http://box.kancloud.cn/2015-09-15_55f7f3f3206ed.png)](http://box.kancloud.cn/2015-07-18_55a9d69823063.png)
“SHOW TABLES”叙述会传回目前使用中数据库的所有表格名称,你可以搭配“FROM”与“LIKE”关键字查询需要的表格资讯:
[![mysql_17_snap_06](http://box.kancloud.cn/2015-09-15_55f7f3f87e652.png)](http://box.kancloud.cn/2015-07-18_55a9d69a925cf.png)
“SHOW TABLES”叙述只会传回表格名称,如果需要详细的表格资讯,可以使用下列的“SHOW TABLE STATUS”叙述:
[![mysql_17_snap_07](http://box.kancloud.cn/2015-09-15_55f7f403054e5.png)](http://box.kancloud.cn/2015-07-18_55a9d6a6a6c73.png)
“SHOW TABLE STATUS”叙述可以搭配“LIKE”或“WHERE”关键字:
[![mysql_17_snap_08](http://box.kancloud.cn/2015-09-15_55f7f403bb529.png)](http://box.kancloud.cn/2015-07-18_55a9d6b20ced9.png)
下列的“SHOW”指令语法可以查询MySQL数据库服务器中的字段资讯:
[![mysql_17_snap_09](http://box.kancloud.cn/2015-09-15_55f7f405787e6.png)](http://box.kancloud.cn/2015-07-18_55a9d6b3f2e73.png)
“SHOW COLUMNS FROM 表格”叙述会传回目前使用中数据库,指定表格名称的字段资讯,你可以搭配第二个“FROM”关键字指定数据库:
[![mysql_17_snap_10](http://box.kancloud.cn/2015-09-15_55f7f405efe72.png)](http://box.kancloud.cn/2015-07-18_55a9d6b5817bb.png)
下列的“SHOW”指令语法可以查询MySQL数据库服务器中的索引资讯:
[![mysql_17_snap_11](http://box.kancloud.cn/2015-09-15_55f7f406a7b5a.png)](http://box.kancloud.cn/2015-07-18_55a9d6c6ee53a.png)
“SHOW INDEX FROM 表格”叙述会传回目前使用中数据库,指定表格名称的索引资讯,你可以搭配第二个“FROM”关键字指定数据库:
[![mysql_17_snap_12](http://box.kancloud.cn/2015-09-15_55f7f4071b7df.png)](http://box.kancloud.cn/2015-07-18_55a9d70358145.png)
下列的“SHOW”指令语法可以查询MySQL数据库服务器中的trigger资讯:
[![mysql_17_snap_13](http://box.kancloud.cn/2015-09-15_55f7f40779676.png)](http://box.kancloud.cn/2015-07-18_55a9d7183da9d.png)
“SHOW TRIGGERS”叙述会传回目前使用中数据库的所有trigger资讯,你可以搭配“FROM”关键字指定数据库;“LIKE”或“WHERE”关键字可以设定查询条件:
[![mysql_17_snap_14](http://box.kancloud.cn/2015-09-15_55f7f407dc229.png)](http://box.kancloud.cn/2015-07-18_55a9d71a45b8b.png)
## 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](http://box.kancloud.cn/2015-09-15_55f7f4085fd7d.png)](http://box.kancloud.cn/2015-07-18_55a9d72aa3998.png)
## 2.3 字符集与collation
下列的“SHOW”指令语法可以查询MySQL数据库服务器中的字符集与collation资讯:
[![mysql_17_snap_16](http://box.kancloud.cn/2015-09-15_55f7f40e23b8d.png)](http://box.kancloud.cn/2015-07-18_55a9d72c977f6.png)
“SHOW CHARACTER SET”与“SHOW COLLATION”叙述都可以搭配“LIKE”或“WHERE”关键字设定查询条件:
[![mysql_17_snap_17](http://box.kancloud.cn/2015-09-15_55f7f40e817ff.png)](http://box.kancloud.cn/2015-07-18_55a9d7326f228.png)
## 2.4 其它资讯
下列的“SHOW”指令语法可以查询MySQL数据库服务器中支援的储存引擎资讯:
[![mysql_17_snap_18](http://box.kancloud.cn/2015-09-15_55f7f40ed4909.png)](http://box.kancloud.cn/2015-07-18_55a9d73385b5e.png)
下列的“SHOW”指令语法可以查询MySQL数据库服务器状态与系统变量资讯:
[![mysql_17_snap_19](http://box.kancloud.cn/2015-09-15_55f7f40f72086.png)](http://box.kancloud.cn/2015-07-18_55a9d73b22ca5.png)
下列的叙述可以查询MySQL数据库服务器中与字符集相关的变量资讯:
[![mysql_17_snap_20](http://box.kancloud.cn/2015-09-15_55f7f40fb10a2.png)](http://box.kancloud.cn/2015-07-18_55a9d73c5d9f5.png)
# 3 DESCRIBE指令
“DESCRIBE”是MySQL数据库服务器提供的特殊指令,并不是标准的SQL叙述。它可以查询指定表格的字段资讯:
[![mysql_17_snap_21](http://box.kancloud.cn/2015-09-15_55f7f41048f51.png)](http://box.kancloud.cn/2015-07-18_55a9d73de765d.png)
“DESCRIBE”叙述可以指定要查询的字段名称,或是使用样版字串设定查询条件:
[![mysql_17_snap_22](http://box.kancloud.cn/2015-09-15_55f7f4107cca4.png)](http://box.kancloud.cn/2015-07-18_55a9d741dfddc.png)
# 4 mysqlshow
MySQL数据库服务器提供一个可以在命令提示字符下执行的工具程式“mysqlshow”:
[![mysql_17_snap_24](http://box.kancloud.cn/2015-09-15_55f7f410ef7e5.png)](http://box.kancloud.cn/2015-07-18_55a9d74b9e7ff.png)
“mysqlshow”工具程式有下列几种不同的用法:
[![mysql_17_snap_25](http://box.kancloud.cn/2015-09-15_55f7f4163bc17.png)](http://box.kancloud.cn/2015-07-18_55a9d76419f3e.png)