最近接到一个需求,就是整理现有系统的库表清单和字段清单用于交付

一个系统那么多表和字段,这工作量可不小啊

作为一个技术人当然不甘于这样认输,果断查找是否可以通过sql查出,最后还是找到了

一、前言
说明
在mysql中,information_schema这个数据库中保存了mysql服务器所有数据库的信息。
包括数据库名,数据库的表,表字段的数据类型等。
简而言之,若想知道mysql中有哪些库,哪些表,表里面有哪些字段以及他们的注释,都可以从information_schema中获取。

二、查看数据所有表名及注释

可以根据文档要求来列出查询条件

文档要求:

 库注释,库ip,库名,库类型都可以手动填,最后两个需要导出


select
    t.TABLE_COMMENT,
    t.TABLE_NAME
from
    information_schema.tables t
where
    t.TABLE_TYPE = 'BASE TABLE'
    and TABLE_schema = '数据库名'

 

三、查看数据库所有表及字段的注释

文档要求:

 表注释,表名,字段注释,字段名,字段类型都可以查出,

关联字段和字典项:字典项一般包含在字段注释里,可以忽略不填,关联字段涉及多表联查,可以酌情填写

SELECT
    a.TABLE_COMMENT AS 表注释,
    a.TABLE_NAME AS 表名,
    b.ordinal_position,
    b.COLUMN_name AS 字段名,
    b.COLUMN_type AS 字段类型,
    b.is_nullable AS 是否允许为空,
    b.column_key AS 是否为主键,
    b.COLUMN_comment AS 字段注释
FROM
    information_schema.TABLES a
    LEFT JOIN information_schema.COLUMNS b ON a.table_name = b.TABLE_NAME 
    AND a.table_schema = b.table_schema 
WHERE
    a.table_schema = '数据库名' 
    -- AND b.TABLE_NAME = '表名'
    ORDER BY a.TABLE_NAME,b.ordinal_position

 

 

有其他需求,可以查看information_schema.TABLES 和 information_schema.COLUMNS 表里面的字段,按需求列出查询项


四、查看指定表的字段及注释

select
    b.ordinal_position,
    b.COLUMN_name,
    b.COLUMN_type,
    b.COLUMN_comment,
    b.is_nullable,
    b.column_key
from
    information_schema.TABLES a
    LEFT JOIN information_schema.COLUMNS b ON a.table_name = b.TABLE_NAME 
    AND a.table_schema = b.table_schema 
where
    a.table_schema = '数据库名'
    AND b.TABLE_NAME = '表名'

 

 

 

参考文档:

https://blog.csdn.net/qq_44723773/article/details/130614544

https://zhuanlan.zhihu.com/p/88342863

posted on 2023-10-09 11:34  06  阅读(1002)  评论(0编辑  收藏  举报