作为一名程序员,你有过一个简单的问题过很久才解决的经历吗?

有次安排一位组员一个临时任务,把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数据库这些基础知识很有必要,有助于我们更好的解决日常工作遇到的问题。