猿问

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

我在创建一个表的时候,通常都是要加字段长度的,比如id int(5) ,username varchar(50),等等,但是我查了一下

这里面的长度并不代表实际存储的长度,而是和zerofill结合起来会有一些不同,并不代表实际存储值的大小,那么我就在想,为什么我见到的所有的教程上面都要加这个长度呢,我不加行不行,因为这个东西我加不加效果是一样的,假如我不考虑0填充的话。

加了这个长度是不是对性能方法有影响啊,还是其他原因,并且我发现,varchar这种类型的,还必须加长度,不加的话还会报错,这个我就更不能理解了,为什么?

在线等,很着急!!!!!

feibenren
浏览 3320回答 1
1回答

忘性最大的人

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代表了字段的长度,必须指定。
随时随地看视频慕课网APP

相关分类

MySQL
我要回答