Mysql如何查询某个表的字段

578 阅读1分钟

今天由于业务需求,需要获取某张表的一些特定格式的字段。 了解到需求后,开始不知如何下手,经过网上查询,了解到在mysql默认的information_schema数据库中有我们很多相关的表信息以及其他信息,而我需要的表字段信息就在其中一个COLUMNS表里面。首先说明我的需求(查询表中某些符合条件的字段并把注释查询出来)

实际一个简单的SQL就ok了

SELECT
        t.COLUMN_NAME,
        t.COLUMN_COMMENT
    FROM
        information_schema.COLUMNS t
    WHERE
        t.TABLE_SCHEMA = ( SELECT DATABASE ( ) )
        AND t.TABLE_NAME = 'quota_attribute'
        AND t.COLUMN_NAME LIKE 'tag_%'

t.COLUMN_NAME, t.COLUMN_COMMENT这是我们查询的字段名和字段注释2个字段

information_schema.COLUMNS 指明了查询的数据库以及表名

下面的三个筛选条件则依次表名,第一筛选出指定数据库数据,第二筛选出指定表数据,第三符合特定开头的数据。

接着抱着好奇心我们看下这个COLUMNS 表除了刚才字段值和备注,还能给我们展示什么数据。

  • TABLE_CATALOG 表目录
  • TABLE_SCHEMA 表所在的数据库
  • TABLE_NAME 表名
  • COLUMN_NAME 字段名
  • ORDINAL_POSITION 字段排序
  • COLUMN_DEFAULT 字段默认值
  • IS_NULLABLE 是否允许为空
  • DATA_TYPE 字段类型
  • CHARACTER_MAXIMUM_LENGTH 字段最大长度
  • CHARACTER_OCTET_LENGTH 字段最大字节数
  • NUMERIC_PRECISION 字段精度
  • NUMERIC_SCALE
  • DATETIME_PRECISION 日期精度
  • CHARACTER_SET_NAME 字段编码格式
  • COLLATION_NAME 字段排序类型
  • COLUMN_TYPE 字段类型
  • COLUMN_KEY 字段索引
  • EXTRA 是否自增
  • PRIVILEGES 字段支持操作
  • COLUMN_COMMENT 字段注释

所以大家可以看到,其实我们在DDL的语句上面的属性,几乎都可以在COLUMNS表上查到。

PS____掘金的markdown太难用了,下回还是写好后粘贴过来吧