直接利用mysql数据库中自带的information_schema来查询各种表和注释,会比创建存储等间接方式更加简单快速。
一、information_schema数据库
它提供了访问数据库元数据的方式。元数据是指数据库名、表名、列的数据类型、访问权限等和数据相关的数据。其中的一些表的说明:
表名 | 说明 |
---|
SCHEMATA | 提供了当前mysql实例中所有数据库的信息。 show databases的结果来自该表。 | TABLES | 提供了关于数据库中的表(包括视图)的信息。包含某个表属于哪个schema,表类型,表引擎,创建时间等信息。 show tables from schemaname的结果来自该表。 | COLUMNS | 提供了表中的列信息。 show columns from schemaname.tablename的结果来自该表。 | STATISTICS | 提供了关于表索引的信息。 | VIEWS | 关于数据库中的视图的信息。 | TRIGGERS | 关于触发程序的信息。 |
二、查询
/* 查询数据库 ‘cargo’ 所有表的名称和注释 */
SELECT TABLE_NAME,TABLE_COMMENT?FROM information_schema.TABLES?
WHERE table_schema='cargo';
/* 查找某字段'待查值'所在的表 */
SELECT table_name,table_comment FROM information_schema.TABLES
WHERE table_comment LIKE '%待查值%';
/* 查询数据库 ‘cargo’ 里的表 ‘cargo_order’ 的所有字段注释 */
SELECT COLUMN_NAME,column_comment?
FROM INFORMATION_SCHEMA.Columns?
WHERE table_name='cargo_order' AND table_schema='cargo';
/* 查询数据库 "cargo" 下表注释以及对应表字段注释 */
SELECT t.TABLE_NAME,t.TABLE_COMMENT,c.COLUMN_NAME,c.COLUMN_TYPE,c.COLUMN_COMMENT?
FROM information_schema.TABLES t,INFORMATION_SCHEMA.Columns c?
WHERE c.TABLE_NAME=t.TABLE_NAME AND t.`TABLE_SCHEMA`='cargo';
?
|