一个资料库在建立许多表格与索引以后,不论是程式开发或是资料库管理人员,都会有查询表格与索引相关资料的需求。例如查询一个表格中有哪些栏位,还有栏位的型态与属性的设定;也可能需要查询某一个表格建立了哪些索引与设定的资讯。
想要知道一个资料库中有哪一些表格,可以执行下列的叙述:
这个叙述可以使用「字串样式」设定表格名称的条件:
MySQL资料库在启动以后,会有一个很特别的资料库,名称是「information_schema」,这个资料库通常会称为「系统资讯资料库」。这个资料库中有一个表格叫作「TABLES」,它储存所有MySQL资料库中的表格相关资讯,「TABLES」表格有下列主要的栏位:
栏位名称 | 型态 | 说明 |
TABLE_SCHEMA | varchar(64) | 资料库名称 |
TABLE_NAME | varchar(64) | 表格名称 |
ENGINE | varchar(64) | 使用的储存引擎名称 |
TABLE_ROWS | bigint(21) unsigned | 纪录数量 |
AUTO_INCREMENT | bigint(21) unsigned | 如果包含「AUTO_INCREMENT」栏位的话,这个栏位会储存下一个编号 |
TABLE_COLLATION | varchar(32) | 表格使用的collation |
执行下列的查询叙述就可以查询表格详细的资讯:
MySQL也提供下列的叙述让你查询一个表格的定义:
下列的叙述可以查询建立表格的「CREATE TABLE」叙述:
回传的「Create Table」栏位的内容就是一个建立表格的叙述:
MySQL提供「SHOW INDEX」叙述查询一个表格的索引详细资讯,下列是执行这个叙述以后,传回的主要栏位资料:
栏位名称 | 说明 |
Table | 表格名称 |
Non_unique | 「0」表示不可重复;「1」可以重复 |
Key_name | 索引名称 |
Seq_in_index | 单一栏位的索引为「1」;多个栏位的索引表示建立索引的栏位顺序 |
Column_name | 索引栏位名称 |
Sub_part | 如果是指定长度的索引,这里会显示长度;不是的话显示「NULL」 |
Null | 是否允许「NULL」值 |
Index_type | 索引种类,「BTREE」或「HASH」 |
你可以在「SHOW INDEX FROM」后面指定一个表格名称,执行以后就可以查询这个表格所有的索引资讯: