MYSQL中的int(11)指的是什么

  介绍

小编给大家分享一下MYSQL中的int(11)指的是什么,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

,,,,,,,,,,,,,,,,,,,,,,,,,,,,在工作中经常要与mysql打交道,但是对mysql的各个字段类型一直都是一知半解,mysql中的int(11)代表什么呢?大家可能也不太清楚,因此写本文总结记录一番。

对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的int(11)代表什么意思,很长时间以来我都以为这代表着限制int的长度为11位,直到有天看到篇文章才明白,11代表的并不是长度,而是字符的<>强显示宽度强,在字段类型为int时,无论你显示宽度设置为多少,int类型能存储的最大值和最小值永远都是<强>固定强的,这里贴一些原文片段

括号中的数字不确定最大和最小值,可以存储在整数字段。最大和最小值,可以存储总是固定的。

显示列的宽度不会影响最大可以存储在该列的值。一列INT(5)或INT(11)可以存储相同的最大值。同样,如果你有一个列INT(20),这并不意味着你将能够存储20位值(长整型数字值)。列仍然将存储> CREATE  TABLE  int_demo  (   ,,,id  INT (11), NOT  NULL  AUTO_INCREMENT,   ,,,a  INT (11), NOT 空,   ,,,b  INT (11), UNSIGNED  ZEROFILL  NOT 空,   ,,,c  INT (5), DEFAULT 空,   ,,,d  INT (5), UNSIGNED  ZEROFILL  NOT 空,   ,,,e  INT (15), DEFAULT 空,   ,,,PRIMARY  KEY  (id)   )

插入两条数据

INSERT  INTO  int_demo  (a, b, c, d, e), VALUES  (1, 1, 1, 1, 1);   INSERT  INTO  int_demo  (a, b, c, d, e), VALUES  (1234567890,, 1234567890,, 1234567890,, 1234567890,, 1234567890); ,select  *,得到int_demo; idabcde110000000000110000112123456789001234567890123456789012345678901234567890

注释:如果用navicate软件查询出来并不会显示左边的0,但把数据导出时可看到真实的数据,猜测是软件对数据格式进行了处理?

从上个例子我们可以得出以下几个结论:

<李>

如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段b,插入数值1显示为00000000001,左边补了10个零直至长度达到11位,

<李>

设置字段的显示宽度并不限制字段存储值的范围,比如字段d设置为int(5),但是仍然可以存储1234567890这个10位数字;

<李>

设置的字符宽度只对数值长度不满足宽度时有效,如d字段int(5),插入1时,长度不足,因此在左边补充4个零直到5位,但是插入1234567890时超过了5位,这时的显示宽度就起不了作用了。

看完了这篇文章,相信你对“MYSQL中的int(11)指的是什么”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

MYSQL中的int(11)指的是什么