为了账号安全,请及时绑定邮箱和手机立即绑定

mysql中有一个地方我很不解:id int和id int(4),这两个到底有什么不同

mysql中有一个地方我很不解:id int和id int(4),这两个到底有什么不同

feibenren 2015-10-25 08:58:07
我在创建一个表的时候,通常都是要加字段长度的,比如id int(5) ,username varchar(50),等等,但是我查了一下这里面的长度并不代表实际存储的长度,而是和zerofill结合起来会有一些不同,并不代表实际存储值的大小,那么我就在想,为什么我见到的所有的教程上面都要加这个长度呢,我不加行不行,因为这个东西我加不加效果是一样的,假如我不考虑0填充的话。加了这个长度是不是对性能方法有影响啊,还是其他原因,并且我发现,varchar这种类型的,还必须加长度,不加的话还会报错,这个我就更不能理解了,为什么?在线等,很着急!!!!!
查看完整描述

1 回答

已采纳
?
忘性最大的人

TA贡献118条经验 获得超37个赞

int(M)“(M)”指定了 int 型数值显示的宽度,如果字段数据类型是 int(4),则:当显示数值 10 时,在左边要补上 “00”;当显示数值 100 是,在左边要补上“0”;当显示数值 1000000 时,已经超过了指定宽度“(4)”,因此按原样输出。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。说白了,除了显示给用户的方式有点不同外,int(M) 跟 int 数据类型是相同的。而且这个M不写也是可以的,默认为1(在1到64之间取值),可能是为了格式一致的原因,而varchar(M)M代表了字段的长度,必须指定。

查看完整回答
1 反对 回复 2015-10-25
  • 1 回答
  • 0 关注
  • 3319 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信