最近接到一个需求,就是整理现有系统的库表清单和字段清单用于交付
一个系统那么多表和字段,这工作量可不小啊
作为一个技术人当然不甘于这样认输,果断查找是否可以通过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, a.TABLE_NAME, b.COLUMN_comment, b.COLUMN_name, b.COLUMN_type from information_schema.TABLES a left join information_schema.COLUMNS b on a.table_name = b.TABLE_NAME where a.table_schema ='数据库名'
有其他需求,可以查看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 where a.table_schema = '数据库名'
参考文档:
https://blog.csdn.net/qq_44723773/article/details/130614544
https://zhuanlan.zhihu.com/p/88342863
标签:information,表和字,数据库,注释,COLUMN,mysql,清单,TABLE,schema From: https://www.cnblogs.com/allay/p/17751315.html