MySQL 通过information_schema.tables查询数据库的表信息

今天在看若依系统时,看到了代码生成功能部分,里面的列表显示了配置数据库中的各个表信息(包括表名,表注释,表创建时间等)。之前没见过这种场景,我带着疑问“呦呵,这是什么玩意,怎么实现的?”,然后在代码里噼里啪啦一顿找,终于看到了SQL实现,就是下边这个样子

在这里插入图片描述
看到information_schema.tables时,想了一下,没见过,但不重要,把控制台打印的SQL日志拷贝运行了一下,输出结果是这样的,我看到输出,“诶呦,这小玩意儿还挺好使”,然后在网上了解了一下大佬对information_schema.tables的解读,以此写下随笔,当做笔记。

在这里插入图片描述

information_schema.tables存储了数据表的元数据信息,主要用于查看数据库的表信息(包括视图)

其中table_information代表你要查询的表信息,database_name是要查询的数据库名称,没有where部分的话,默认是查询当前SQL连接下所有数据库的表信息
select [table_information1,table_information2,...] from information_schema.tables where table_schema = [database_name]

例:

select table_name, table_comment, create_time from information_schema.tables where table_schema = my_database
该语句表示查询my_database数据库下所有表的表名,表注释,表创建时间。

可以查询到的表信息有以下可选值:

字段含义
Table_catalog数据表登记目录
字段含义
Table_catalog数据表登记目录
Table_schema数据表所属的数据库名
Table_name表名称
Table_type表类型[system view/base table]
Engine使用的数据库引擎[MyISAM/CSV/InnoDB]
Version版本,默认值10
Row_format行格式[Compact/Dynamic/Fixed]
Table_rows表里所存多少行数据
Avg_row_length平均行长度
Data_length数据长度
Max_data_length最大数据长度
Index_length索引长度
Data_free空间碎片
Auto_increment做自增主键的自动增量当前值
Create_time表的创建时间
Update_time表的更新时间
Check_time表的检查时间
Table_collation表的字符校验编码集
Checksum校验和
Create_options创建选项
Table_comment表的注释、备注

如有错误,欢迎指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值