数据类型 - mysql里mediumint类型如果手动把“长度”设为3,会有影响吗?
ringa_lee
ringa_lee 2017-04-17 16:38:32
0
2
490

查了一下,一般都是这么说的:

  • TINYINT——一个微小的整数,支持 -128到127(SIGNED),0到255(UNSIGNED),需要1个字节存储

  • BIT——同TINYINT(1)

  • BOOL——同TINYINT(1)

  • SMALLINT——一个小整数,支持 -32768到32767(SIGNED),0到65535(UNSIGNED),需要2个字节存储

  • MEDIUMINT——一个中等整数,支持 -8388608到8388607(SIGNED),0到16777215(UNSIGNED),需要3个字节存储

  • INT——一个整数,支持 -2147493648到2147493647(SIGNED),0到4294967295(UNSIGNED),需要4个字节存储

  • INTEGER——同INT

  • BIGINT——一个大整数,支持 -9223372036854775808到9223372036854775807(SIGNED),0到18446744073709551615(UNSIGNED),需要8个字节存储

用Navicat之类的可视化工具的时候,“长度”那一项是可以改的。也就是说,我可以把mediumint的长度改成3,或者把tinyint的长度改为10……
我试着改了一下再看表中的数据,是没有变的。
我就想问问,其实这里生效的只是“类型”对吗?


又搜了一下,找到这个:

mysql 中int(1)和tinyint(1)中的1只是指定显示长度,并不表示存储长度,只有字段指定zerofill是有用
如int(3),如果实际值是2,如果列指定了zerofill,查询结果就是002,左边用0来填充。

位数限制基本没有意义。

http://www.111cn.net/database...

不知道这里说的“位数”是不是我说的“长度”呢……

ringa_lee
ringa_lee

ringa_lee

reply all (2)
PHPzhong

Yes, the number of digits (the length you mentioned) is just a display problem

    洪涛

    It’s just the number of digits displayed, it has nothing to do with the maximum and minimum values

      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!