这类查询很有意思,查询某个数据库中的表和字段的信息。通过排列组合可以总结出 4 种查询方式。
1. 查询数据库下所有表名、表注释
SELECT
TABLE_NAME AS 表名,
TABLE_COMMENT AS 表注释
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'dms_app_dev';
2. 查询数据库下字典表下所有字段名、数据类型、字段注释
SELECT
COLUMN_NAME AS 字段名,
DATA_TYPE AS 数据类型,
COLUMN_COMMENT AS 字段注释
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'dms_app_dev'
AND TABLE_NAME = 'dicts';
3. 查询数据库下所有表下所有字段名、数据类型、字段注释
SELECT
COLUMN_NAME AS 字段名,
DATA_TYPE AS 数据类型,
COLUMN_COMMENT AS 字段注释
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'dms_app_dev';
4. 查询数据库下所有表名、表注释和所有字段名、数据类型、字段注释
SELECT
t.TABLE_NAME AS 表名,
t.TABLE_COMMENT AS 表注释,
c.COLUMN_NAME AS 字段名,
c.COLUMN_TYPE AS 数据类型,
c.COLUMN_COMMENT AS 字段注释
FROM
INFORMATION_SCHEMA.TABLES AS t,
INFORMATION_SCHEMA.COLUMNS AS c
WHERE
c.TABLE_NAME = t.TABLE_NAME
AND t.TABLE_SCHEMA = 'dms_app_dev';
原理其实也很简单,我们在创建数据库、表、字段的时候,MySQL 会把我们的数据详情存储在 information_schema 这个系统数据库中,这样我们就可以通过 SQL 可以简单的查询了,有兴趣的可以看下。