这类查询很有意思,查询某个数据库中的表和字段的信息。通过排列组合可以总结出 4 种查询方式。
1. 查询数据库下所有表名、表注释
SELECT
TABLE_NAME AS 表名,
TABLE_COMMENT AS 表注释
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'dms_app_dev';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200701173510907.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbG92ZXhpbmc=,size_16,color_FFFFFF,t_70)
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';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200701173654366.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbG92ZXhpbmc=,size_16,color_FFFFFF,t_70)
3. 查询数据库下所有表下所有字段名、数据类型、字段注释
SELECT
COLUMN_NAME AS 字段名,
DATA_TYPE AS 数据类型,
COLUMN_COMMENT AS 字段注释
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'dms_app_dev';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200701173949918.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbG92ZXhpbmc=,size_16,color_FFFFFF,t_70)
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';
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200701174430768.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbG92ZXhpbmc=,size_16,color_FFFFFF,t_70)
原理其实也很简单,我们在创建数据库、表、字段的时候,MySQL 会把我们的数据详情存储在 information_schema 这个系统数据库中,这样我们就可以通过 SQL 可以简单的查询了,有兴趣的可以看下。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020070117594133.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpbG92ZXhpbmc=,size_16,color_FFFFFF,t_70)
|