在 Node.js 模块库中有很多好用的模块。接下来我们为大家介绍几种常用模块的使用: 序号 模块名 & 描述 1 OS…
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资讯:
在之前所讨论过的查询叙述用法,都可以用来查询「information_schema」资料库:
2 SHOW指令
除了使用查询叙述直接查询「information_schema」资料库中的资讯外,MySQL资料库伺服器供有许多不同用法的「SHOW」指令,同样可以查询资料库资讯。 「SHOW」指令是MySQL资料库伺服器专用的指令,并不是标准的SQL叙述。
2.1 资料库元件资讯
下列的「SHOW」指令语法可以查询MySQL资料库伺服器中的资料库资讯:
「SHOW DATABASES」指令也可以搭配使用「LIKE」关键字:
注:字串样式的设定在「基础查询、条件查询、字串样式」中讨论。
下列的「SHOW」指令语法可以查询MySQL资料库伺服器中的表格资讯:
「SHOW TABLES」叙述会传回目前使用中资料库的所有表格名称,你可以搭配「FROM」与「LIKE」关键字查询需要的表格资讯:
「SHOW TABLES」叙述只会传回表格名称,如果需要详细的表格资讯,可以使用下列的「SHOW TABLE STATUS」叙述:
「SHOW TABLE STATUS」叙述可以搭配「LIKE」或「WHERE」关键字:
下列的「SHOW」指令语法可以查询MySQL资料库伺服器中的栏位资讯:
「SHOW COLUMNS FROM 表格」叙述会传回目前使用中资料库,指定表格名称的栏位资讯,你可以搭配第二个「FROM」关键字指定资料库:
下列的「SHOW」指令语法可以查询MySQL资料库伺服器中的索引资讯:
「SHOW INDEX FROM 表格」叙述会传回目前使用中资料库,指定表格名称的索引资讯,你可以搭配第二个「FROM」关键字指定资料库:
下列的「SHOW」指令语法可以查询MySQL资料库伺服器中的trigger资讯:
「SHOW TRIGGERS」叙述会传回目前使用中资料库的所有trigger资讯,你可以搭配「FROM」关键字指定资料库;「LIKE」或「WHERE」关键字可以设定查询条件:
2.2 建立元件资讯
下列的「SHOW」指令语法可以查询MySQL资料库伺服器中建立各种元件的详细资讯:
指令 | 说明 |
SHOW CREATE DATABASE 资料库名称 | 查询建立资料库的详细资讯 |
SHOW CREATE TABLE 表格名称 | 查询建立表格的详细资讯 |
SHOW CREATE FUNCTION 名称 | 查询建立Function的详细资讯 |
SHOW CREATE PROCEDURE 名称 | 查询建立Procedure的详细资讯 |
SHOW CREATE VIEW 名称 | 查询建立View的详细资讯 |
下列的叙述可以查询建立「world.city」表格的叙述:
2.3 字元集与collation
下列的「SHOW」指令语法可以查询MySQL资料库伺服器中的字元集与collation资讯:
「SHOW CHARACTER SET」与「SHOW COLLATION」叙述都可以搭配「LIKE」或「WHERE」关键字设定查询条件:
2.4 其它资讯
下列的「SHOW」指令语法可以查询MySQL资料库伺服器中支援的储存引擎资讯:
下列的「SHOW」指令语法可以查询MySQL资料库伺服器状态与系统变数资讯:
下列的叙述可以查询MySQL资料库伺服器中与字元集相关的变数资讯:
3 DESCRIBE指令
「DESCRIBE」是MySQL资料库伺服器提供的特殊指令,并不是标准的SQL叙述。 它可以查询指定表格的栏位资讯:
「DESCRIBE」叙述可以指定要查询的栏位名称,或是使用样版字串设定查询条件:
4 mysqlshow
MySQL资料库伺服器提供一个可以在命令提示字元下执行的工具程式「mysqlshow」:
「mysqlshow」工具程式有下列几种不同的用法:
翻译自: http://www.codedata.com.tw/database/mysql-tutorial-17-information_schema/
更多参考:
MySQL入门 (十一) : Prepared Statements
MySQL入门 (十二) : Stored Routines 入门
MySQL入门 (十三) : Stored Routines 的变数与流程
MySQL入门 (十四) : Stored Routines 进阶
本文: MySQL入门 (十六) : 查询information_schema