最近做MySQL数据库表设计的时候遇到了多种数字类型的数据,因此对使用哪种数据类型犯难了。以前也没有特别注意这一部分的内容,今天查了一下跟大家共勉。
mysql中精确的整数数字(是不是有点绕)数据类型主要有bigint,int,smallint和tinyint四种。四种用法和长度各不相同。
存储大小为 8 个字节,长度从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。
在myBatis和JPA中生成实体类型为引用类型Long。
对应Java中基本数据类型long,long(长整型)在内存中占64位,即8个字节-2^63~2^63-1,默认值0L(尽量用大写L表示长整型,不要用小写 l ,因为在IDE中小写 l 和 1 有点傻傻分不清楚)。
ps: bigint已经有长度了,在mysql建表中的length,只是用于显示的位数。
存储大小为 4 个字节,长度从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。
在myBatis和JPA中生成实体类型为引用类型Integer。
对应Java中基本数据类型int,int(整型)在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0。
存储大小为 2 个字节,从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。
在myBatis和JPA中生成实体类型为引用类型Short。
对应Java中基本数据类型short,short(短整型)在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 。
存储大小为 1 字节,从 0 到 255 的整型数据。
在myBatis和JPA中生成实体类型为引用类型Byte。
对应Java中基本数据类型byte,byte是Java中最想的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0。
其实细看上面四个类型就会发现一定的规律。bigint,int,smallint和tinyint分别占用8、4、2、1个字节,每个字节占内存8位(bit)。那么他们的长度怎么计算呢?
bigint:从 -2^(8*8 - 1)到2^(8*8-1) - 1;
int:从-2^(4*8 - 1)到2^(4*8-1) - 1;
smallint:从-2^(2*8 - 1)到2^(2*8-1) - 1;
short:从-2^(1*8 - 1) 到2^(1*8-1) - 1;
大家发现规律没有,只要这么一看就很容易记住了各个类型的长度了。
大家请注意每个计算公式最后都 -1 。这个 -1 是为什么呢,请大家在留言板告诉我。
欢迎大家关住本人头条号,谢谢各位程序猿同胞看到这里。
我妈温婉了一辈子,她作为一个画家,总是沉浸在她的世界里,变得不太爱跟人交流,社恐。面对这种情况,她也只会抱以笑容,只要不触及底线,她不会生气的。也是这个软包子的脾气,我们四兄妹
2025-09-16 02:06:08
陌生男子半夜闯进我家,跟我老婆发生了关系。而我站在一旁目睹的全程。灵魂飘回家后,我才发现自以为美满的婚姻只是一场骗局。老婆一直和青梅竹马藕断丝连……苍天有眼,我竟然意
2025-09-15 18:19:02
星辉大酒店,矗立于江南市中心,是名副其实的地标性建筑。其顶层的“星辉之巅”宴会厅,更是只有真正的权贵名流才能踏足的地方。今夜,这里灯火辉煌,流光溢彩。一辆辆价值不菲的豪
2025-09-15 17:43:26
第一章风暴前夕夏末的午后,阳光透过百叶窗,在地板上投下斑驳的光影。向薇坐在“听涛轩”民宿的露台上,手里捧着一杯冰凉的柠檬茶,目光却飘向远方铅灰色的海面。空气里弥漫着咸
2025-09-15 12:05:06
毕业那日教室夕阳如金,她回头笑问“最后一道题答案是什么”。我却答非所问:“是你。”三年异地恋靠千里奔波与深夜视频维系,在火车硬座上啃干面包时,却觉得甜。婚礼那夜她翻出旧
2025-09-15 11:46:21
1开局被疯批堵门,我反手摇人!我,秦风,一睁眼差点又死过去。不是吓的,是气的。胃里翻江倒海,脑袋像是被驴踢过一样嗡嗡作响,喉咙里还残留着被灌药的苦涩感。我居然穿进了昨晚熬夜吐
2025-09-15 11:04:34