如何将MySQL中的每一张表的设置属性导出?

如何将MySQL中的每一张表的设置属性导出?

前言

由于实习接触的项目需要设计数据库表,所以在2个星期的设计后,大概出来差不多30张表,这些表是需要做文档说明的,文档中有一块是要展示每张表的属性,包括每一栏字段、注释、默认值、是否为空、数据类型、长度、索引,所以问题来了:如何快速的将它们导出来做成表格呢?

收集信息

在获得疑问后,我设计了两版数据库,写了两版文档,我的第一版文档的各表汇总中,我是使用Nevicat的复制粘连功能,一个一个复制到表格中去的,30张表,每张表有很多属性、注释啥的,工作量可想而知,所以在写第二版的文档的时候,我去搜了一下:如何将MySQL的表结构导出?这个问题的答案很少,不过还是被我找到了。

解决问题

根据搜集的结果,在MySQL的数据库中,有这么一个数据库:imformation_schema,这个数据库就是记录了所有表的信息,比如:备注、类型等等,信息非常的全,解决问题使用了这两张表:COLUMNS、TABLES。

首先先说TABLES,我需要做一个文档,文档里面的表格要有所有数据表的汇总,并且要有说明,所以用到了TABLES的这两列:TABLE_NAME,TABLE_COMMENT。使用sql语句,我们可以将他们查出来。

SELECT
  table_name 表名,
  TABLE_COMMENT 注释
FROM
 INFORMATION_SCHEMA.TABLES
where
table_schema ='数据库名'

查出来后,直接ctrl+a,复制后再去文档里面粘贴就好了。

类似的,在制作各表信息的时候,我在COLUMNS表里面去看了一些需要哪些列,最后大概是用到了:COLUMN_NAME 列名,COLUMN_TYPE 数据类型,DATA_TYPE 字段类型,CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 备注。也是用了sql语句,将每一张表的信息查了出来:

SELECT
  COLUMN_NAME 列名,
  COLUMN_TYPE 数据类型,
    DATA_TYPE 字段类型,
  CHARACTER_MAXIMUM_LENGTH 长度,
  IS_NULLABLE 是否为空,
  COLUMN_DEFAULT 默认值,
  COLUMN_COMMENT 备注 
FROM
 INFORMATION_SCHEMA.COLUMNS
where
table_schema ='数据库名'
AND
table_name = '表名'

最后就完美的解决了将数据库表的结构信息导出的问题~

结语

在探索COLUMNS表时,我犯傻了,因为我打开了COLUMNS表想看一下我设计的项目的数据库的信息是不是存在这个里面,但是我找不到,ctrl+f也找不到,可是呢,我用上面的sql语句就能查出来,最后想了大概5分钟,原来是Nevicat分页了,我一直在第一页,我设计的数据库在第二页,怪不得找不到,我佛了。

最后附上表格的说明的参考链接:
INFORMATION_SCHEMA.TABLES、INFORMATION_SCHEMA.COLUMNS。

你可能感兴趣的:(如何将MySQL中的每一张表的设置属性导出?)