Mysql中int和varchar类型
int类型:
int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 中的M时,默认分别是 :
int ------- int(11)
bigint ------- bigint(20)
smallint ------- smallint(6)
tinyint ------- tinyint(4)
MySQL支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。int(M) 在 integer 数据类型中,M 表示最大显示宽度,该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。
显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。
在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系, int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。
上面几种类型的存储范围见下图:
如何计算一个字节能够存储的整数位数?
一个字节8位,无符号的可以从0000 0000(0)到1111 1111(2^8-1=255)
有符号:有一位表示符号位(1表示负,0表示正)
正数:0 000 0000到0 111 1111(2^7-1=127,第一位0表示正)。
负数:从1 000 0000到1 111 1111(-(2^7-1)=-127)
负数在计算机中用补码表示-0的补码为0000 0000与+0的表示一致,所以用0000 0000表示+0和-0。所以1 000 0000不表示-0而表示-128。
2个字节有16位,无符号从0000 0000 0000 0000(0)到1111 1111 1111 1111(2^16-1)
有符号:(-2^15到2^15-1)
mysql中设置varchar长度的问题?
出处:http://www.cnblogs.com/lingyejun/
若本文如对您有帮助,不妨点击一下右下角的【推荐】。
如果您喜欢或希望看到更多我的文章,可扫描二维码关注我的微信公众号《翎野君》。
转载文章请务必保留出处和署名,否则保留追究法律责任的权利。