首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

聊聊Mysqlint(1)

昨天有个读者问了我这样一个问题在mysql建表的时候,我设置一个字段为int类型,长度为1,但是我发现这个字段却可以存储任意长度的数字,这是什么情况?...int 类型占 4 个字节,一个字节是 8 位,也就是说 int 类型在计算机底层是由 32 个 0 跟 1 表示,转化为十进制就是 2 的 32 次方,那么存储范围就是 0~2^32 ,如果带符号位的话就是...现在再来看看这个int(1)的1究竟有什么奥秘。这个1跟这个字段存的数据范围没关系,它也不是限制这个字段的数据长度的。这个字段存储的数据范围是由int来限制的。...比如我们将int(1)改成int(3),我们再输入1,实际上显示的是001。所以无论你将 int 类型的长度设为多少并不会影响数据的存储范围。...mysql对于整型的数据类型,不仅给我们提供了int,还提供了tinyint,smallint,mediumint和bigint。

1.6K20

Mysqlint和varchar类型

int类型: int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 的M时,默认分别是 : int           -------     int...int(M) 在 integer 数据类型,M 表示最大显示宽度,该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。...在 int(M) ,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系, int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。...2个字节有16位,无符号从0000 0000 0000 0000(0)到1111 1111 1111 1111(2^16-1) 有符号:(-2^15到2^15-1) mysql设置varchar长度的问题...如果某一项设置的是varchar(50),那么对英文当然是50,那么对中文呢?utf-8的中文占3个字节,那么这个varchar(50)是不是只能存16个汉字了?

1.7K10

MySqlint(10)与int(11)有什么区别吗?

0 1 引言 依稀还记得有次面试,有面试官问我int(10)与int(11)有什么区别,当时觉得就是长度的区别吧!面试官最后也没有给反馈,我也就以为自己答对了。...最后查出的结果是:这里的M代表的并不是存储在数据库的具体的长度,以前总是会误以为int(3)只能存储 3个长度的数字,int(11)就会存储 11 个长度的数字,这是大错特错的。...int(10)也可以代表 2147483647 这个值int(11)也可以代表。 要查看出不同效果记得在创建类型的时候加 zerofill这个值,表示用 0 填充,否则看不出效果的。...0 2 知识点 int(M) 的M指示最大显示宽度,最大有效显示宽度是 255,且显示宽度与存储大小或类型包含的值的范围无关。...0 3 总结 所以,int(2) 与int(11)后的括号的字符表示显示宽度,整数列的显示宽度与 MySQL 需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,int类型的字段存储的数据上限依旧是

4.1K30

Javaint和Integer的区别

float double 包装类型 Boolean Character Byte Short Integer Long Float Double Java的基本数据类型只有...二、三种引用类型: 1.类class 2.接口interface 3.数组array 三、int和Integer的区别 1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer...(因为非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存的地址不同) Integer i = new Integer(...== j); //false 对于第4条的原因: java在编译Integer i = 100 ;时,会翻译成为 Integer i = Integer.valueOf(100);,而java API对...new Integer(i); } java对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存

71310
领券