往期专题请查看
这是一个坚持Oracle,Python,MySQL原创内容的公众号
这个专题主要讲information_schema数据库下的一些表
如无特殊说明数据库版本为MySQL 5.7.26
该表显示表中列的信息
有如下栏位
TABLE_CATALOG 包含列的表所属的目录的名称,该值总是def
TABLE_SCHEMA 包含列的表所属的数据库的名称。
TABLE_NAME 包含列的表名
COLUMN_NAME 列名
ORDINAL_POSITION 该列在表中的位置
COLUMN_DEFAULT 列的默认值,如果未定义或者显式的指定为NULL,则该值为NULL
IS_NULLABLE 该列是否为空(YES/NO)
DATA_TYPE 列的数据类型,不包含其他信息,如数据类型的精度
CHARACTER_MAXIMUM_LENGTH 字符串类型的列的最大长度,字符为单位
CHARACTER_OCTET_LENGTH 字符串类型的列的最大长度,字符为字节
NUMERIC_PRECISION number类型的列的精度
NUMERIC_SCALE number类型的列的scale
DATETIME_PRECISION 对于日期类型的列的分数秒精度
CHARACTER_SET_NAME 对于字符串的列,其字符集的名称
COLLATION_NAME 对于字符串的列,其排序规则的名称
COLUMN_TYPE列的数据类型,除了类型外可能包含其他信息,例如精度等
COLUMN_KEY 该列是否被索引
EXTRA 列的其他一些信息
PRIVILEGES 你对该列所拥有的权限
COLUMN_COMMENT 列的注释
GENERATION_EXPRESSION 如果是生成列,这里显示用来继续其值的表达式,否则为空
接下来对上面的一些栏位做进一步的介绍
该列显示列是否被索引,其有如下可能值
空 代表没有被索引,或者是一个多列的非唯一的索引的次要列
PRI 代表是主键,或者是一个多列主键的其中一个栏位
UNI 代表是一个唯一索引的第一个列,一个唯一索引是可以有多个空值的
MUL 代表该列是一个非唯一索引的第一个列
如果一个栏位在多个索引中,COLUMN_KEY只会显示其中优先级最高的一个,顺序为PRI, UNI, MUL
如果表中无主键,如果一个唯一索引不可以包含空值(定义非空),该列其可能会被显示为PRI
一个复合索引如果是唯一的,该列也有可能会被显示为MUL
该列用于显示额外的信息
auto_increment 代表该列有AUTO_INCREMENT属性
on update 对于TIMESTAMP 或 DATETIME类型的列,CURRENT_TIMESTAMP有ON UPDATE CURRENT_TIMESTAMP属性
VIRTUAL GENERATED 或者 VIRTUAL STORED 对于生成列的一些信息
SELECT * FROM INFORMATION_SCHEMA.COLUMNS\G
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE
table_name = 'innodb_table' AND table_schema = 'test' \G
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'innodb_table' AND table_schema = 'test';

或者
SHOW COLUMNS from innodb_table from test;
show 命令只显示该表中一些栏位
第一个from后是表名,第二from后是数据库名称

https://dev.mysql.com/doc/refman/5.7/en/columns-table.html
可点击阅读原文获得更好的阅读体验,推荐在PC端阅读
也可在公众站内搜索中回复 information_schema 搜索相关内容
或直接打开个人网页搜索
http://
往期专题包括:
Python 自动化运维
MySQL 安装
mysqldump命令详解
mysqlbinlog命令详解
xtrabackup工具详解
打造属于自己的监控系统
Python爬虫基础
Oracle awr报告全解析
Oracle ASM全解析
Oracle Data Guard全解析
Oracle ClusterWare全解析
Oracle常见参数解析
Oracle常见故障处理
Oracle SQL优化案例

觉得文章不错的欢迎关注,转发,收藏,点赞~
原文作者:宅必备;如有侵权,请联系管理员删除。