美文网首页
MySQL informaiton_schema

MySQL informaiton_schema

作者: 等你足够强了再说吧 | 来源:发表于2022-05-21 19:57 被阅读0次
CREATE TEMPORARY TABLE `COLUMNS` (
  `TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '',
  `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
  `TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
  `COLUMN_NAME` varchar(64) NOT NULL DEFAULT '',
  `ORDINAL_POSITION` bigint(21) unsigned NOT NULL DEFAULT '0',
  `COLUMN_DEFAULT` longtext,
  `IS_NULLABLE` varchar(3) NOT NULL DEFAULT '',
  `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
  `CHARACTER_MAXIMUM_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
  `NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL,
  `DATETIME_PRECISION` bigint(21) unsigned DEFAULT NULL,
  `CHARACTER_SET_NAME` varchar(32) DEFAULT NULL,
  `COLLATION_NAME` varchar(32) DEFAULT NULL,
  `COLUMN_TYPE` longtext NOT NULL,
  `COLUMN_KEY` varchar(3) NOT NULL DEFAULT '',
  `EXTRA` varchar(30) NOT NULL DEFAULT '',
  `PRIVILEGES` varchar(80) NOT NULL DEFAULT '',
  `COLUMN_COMMENT` varchar(1024) NOT NULL DEFAULT '',
  `GENERATION_EXPRESSION` longtext NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

每一个表中的每一列都会在information_schema.columns表中对应一行
1、informaiton_schema.columns 常用列:
  1、table_catalog          :不管是table | view 这个列的值总是def
  2、table_schema          :表 | 视图所在的数据库名
  3、table_name           :表名 | 视图名
  4、column_name          :列名
  5、column_default         :列的默认值
  6、is_nullable            :是否可以取空值
  7、data_type            :列的数据类型
  8、character_maximum_length   :列的最大长度(这列只有在数据类型为char | varchar 时才有意义)
  9、column_type           :列类型这个类型比data_type列所指定的更加详细,如data_type 是int 而column_type 就有可以能是int(11)
  10、column_key           :列上的索引类型 主键-->PRI | 唯一索引 -->UNI 一般索引 -->MUL

使用场景示例:

  1. 没有写注释的字段有那些
select table_schema as "数据库名",
       table_name as "表名",
       column_name as "字段名",
       COLUMN_COMMENT as "字段注释"
  from information_schema.columns
 where column_comment= ''
   and table_schema in ('数据库1', '数据库2', '数据库3')
 ORDER BY table_schema ;

2、查看一个字段在那个表中

select table_schema as "数据库名",
       table_name as "表名",
       column_name as "字段名",
       COLUMN_COMMENT as "字段注释"
  from information_schema.columns
 where column_name= '期望查找的字段名'
   and table_schema in ('数据库1')
 ORDER BY table_schema ;

相关文章

网友评论

      本文标题:MySQL informaiton_schema

      本文链接:https://www.haomeiwen.com/subject/uethprtx.html