MySQL入门 (十六) : 查询information_schema

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

在之前所讨论过的查询叙述用法,都可以用来查询「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

 

翻译自: http://www.codedata.com.tw/database/mysql-tutorial-17-information_schema/

更多参考:

MySQL 超新手入门教程系列

MySQL入门 (一) : 资料库概论与MySQL的安装

MySQL入门 (二) : SELECT 基础查询

MySQL入门 (三) : 运算式与函式

MySQL入门 (四) : JOIN 与UNION 查询

MySQL入门 (五) : CRUD 与资料维护

MySQL入门 (六) : 字元集与资料库

MySQL入门 (七) : 储存引擎与资料型态

MySQL入门 (八) : 表格与索引

MySQL入门 (九) : 子查询 Subquery

MySQL入门 (十) : Views

MySQL入门 (十一) : Prepared Statements

MySQL入门 (十二) : Stored Routines 入门

MySQL入门 (十三) : Stored Routines 的变数与流程

MySQL入门 (十四) : Stored Routines 进阶

MySQL入门 (十五) : Triggers

MySQL入门 (十七) : 错误处理与查询

 

本文: MySQL入门 (十六) : 查询information_schema

Loading

Add a Comment

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.