作为一名程序员,你有过一个简单的问题过很久才解决的经历吗?
有次安排一位组员一个临时任务,把Mysql某个数据库的所有表名和表注释用一个表格汇总,结果一个多小时过去了,他还没有搞出来。
原来他是一张表逐个登记,紧接着填写表备注。难怪一个多小时过去了他还没有搞好,要知道那个数据库有一百多张表。照这样操作下去,估计下班了他都没有汇总完。
其实,这个问题我们可以借助MySQL数据库自带的数据库information_schema,这个数据库里面存放的MySQL数据库所有的信息,包括数据表、字段注释、数据表的索引、数据库的权限等。
例如我们要查某个数据库的所有表名和表注释,我们可以这样查
- select
- table_name ,
- table_comment
- from information_schema.tables
- where table_schema = 'database'
其中database更换为自己查询的数据库名称即可。
下面我们来普及下Mysql查询数据库中所有表名及注释等信息相关知识。
1、查看Mysql 数据库 "db_aikaifa"下所有表的表名、表注释及其数据量
- select
- table_name ,
- table_comment ,
- table_rows
- from information_schema.tables
- where table_schema = 'db_aikaifa'
- order by table_name;
其中table_name 为表名,table_comment为表注释,table_rows为表数据量大小。
2. 查询数据库"db_aikaifa"下表"user"表所有字段注释
- select
- column_name ,
- column_comment
- from information_schema.columns
- where table_name='user' and table_schema='db_aikaifa'
其中column_name为表字段名称,column_comment为表字段注释
3. 查询数据库 "db_aikaifa" 下所有表的表名、表注释以及对应表字段注释
- select a.table_name 表名, a.table_comment 表注释, b.column_name 表字段, b.column_type 字段类型, b.column_comment 字段注释from information_schema.tables a,information_schema.columns bwhere a.table_schema='db_aikaifa' and b.table_name=a.table_name
拓展:
查看表及字段备注
- show full columns from table_name;
查看所有数据库、表
- show databases;
- show tables;
查看表结构
- show create table table_name;
查看表索引
- show index from table_name;
查看数据库进程、停止某项
- show processlist;
- kill id;
-- 创建索引
- alter table table_name add unique key key_openid_type(openid, type);
-- 删除索引
- alter table table_name drop index key_openid_type ;
-- 修改表引擎 MyISAM
- alter table table_name engine=MyISAM;
-- 修改表引擎 innodb
- alter table table_name engine=innodb;
总结:
MySql查某个数据库的所有表名和表注释
- select
- table_name ,
- table_comment
- from information_schema.tables
- where table_schema = 'database'
掌握了MySql数据库这些基础知识很有必要,有助于我们更好的解决日常工作遇到的问题。