mysql 中int和integer什么区别
问题:MySQL 中int和integer什么区别
mysqlint类型_mysqlint类型长度
答案:没有区别
分析:
· INT[(M)][UNSIGNED] [ZEROFILL]
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
·INTEGER[(M)] [UNSIGNED] [ZEROFILL]
这是INT的同义词。使用两个名字只是为了简化和方便,没有本质上的区别。
mysql的基本数据类型里几个int如下:
类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
mysql int类型的范围
MySQL中int类型占用4个字节[byte(B)],1B有8个位[bit(b)],一个位(b)就代表一个0或者1,那么MySQL中int占用4B,对应位就是 4*8b = 32b 了,也就是说 int 表示的数字 个数 是: 2的32次方。
因为字节分有符号和无符号两种,于是 int 有符号 的 范围就是 -2的31次方 到 2的31次方减去1 ,即 -2147483648 ~ 2147483647; int 无符号 的 范围就是 0 到 2的32次方减去1。
int最大长度是11.
如果在建表时不指定字段int类型的长度时,系统则默认生成长度为11的字段。11也是int类型的最大长度,其中第一位表示符号+或者-,后面十位表示数字。
如果指定了长度,该字段其实也是长度为11的字段,因为只要是int类型,系统都分配了长度11位。
所以,当我们在用mysql数据库建表时如果有字段为int类型则不用指定长度了。
二进制是32位,十进制是10位。(说11位的都是没搞清楚显示宽度和字段长度的,麻烦补补课,
MySQL int是定长字段,4字节,有符号的取值范围为(-2^31 -1) ~ (2^31 -1),约等于20亿左右、即十进制不超过10位数字;如果设置为无符号(unsigned),只有正数、取值范围就是0~(2^32-1)。
如果MySQL这个基本问题还没搞清楚,说明数据结构这块还缺很多东西。建议搞搞清楚,对以后发展有好处
MySQL中中的整数类型int主要有如下几种:
1、tinyint 的范围是-128~127;
2、int的范围是-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字),存储大小为4个字节;
3、bigint的范围是 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节;
4、smallint unsigned的范围是 –2^15(2^15表示2的15次幂) 到2^15 – 1,即 –32768 到 32767;
5、smallint 的范围是 0 到 2^16 – 1,即 0 到 65535,存储的字节是2个字节。
扩展资料
int类型, 占用字节数为4byte, 学过计算机原理的同学应该知道,字节(byte)并非是计算机存储的最小单位, 还有比字节(byte)更小的单位,也就是位(bit),一个位就代表一个0或1; 8个位组成一个字节;一般字节用大写B来表示byte,位用小写b来表示bit。
计算机存储单位的换算:
1B=8b
1KB=1024B
1MB=1024KB
那么根据int类型允许存储的字节数是4个字节,就能换算出int UNSIGNED(无符号)类型的能存储的最小值为0,最大值为4294967295(即4B=32b,最大值即为32个1组成)。
MySQL中中的整数类型int主要有如下几种:
tinyint 的范围是-128~127;
int的范围是-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字),存储大小为4个字节;
bigint的范围是 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节;
smallint unsigned的范围是 –2^15(2^15表示2的15次幂) 到2^15 – 1,即 –32768 到 32767;
smallint 的范围是 0 到 2^16 – 1,即 0 到 65535,存储的字节是2个字节。
mysql的基本数据类型里几个int如下:
类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
同意 henuzhao的意见。
没有区别
· INT[(M)] [UNSIGNED] [ZEROFILL]
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
· INTEGER[(M)] [UNSIGNED] [ZEROFILL]
这是INT的同义词。
以上参考自mysql手册 5.1版本 章节 11.1.1
关于
“如果没有什么区别,那么MySQL为什么有它们俩个哪?”
的问题,打个比方
windows命令行下有mkdir md 都是创建一个文件夹。 而且完全相同。
linux下 list 相当于dos的dir
可是大部分发行版都可以简写成ls
Freebsd中可以简写成l
感觉纯粹是为方便
我今天碰到了个问题 我mysql的数据库中的int类型为null,但是int类型在java中不能赋值为null,
所以要用intger,就像分数如果是缺考就给个null,你用int就会出问题
1、基础知识
1.1mysql 数字类型种类和存储范围
MySQL支持SQL标准整数类型INTEGER(或INT)和SMALLINT。作为标准的扩展,MySQL还支持整数类型TINYINT,MEDIUMINT和BIGINT。下表显示了每种整数类型所需的存储和范围。
1.2字段长度说明
MySQL 类型关键字后面的括号内指定整数值的显示宽度(例如,INT(10))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。
2、字段说明
当我们存在字段int(3)时,存储数据2440会保存成功,且会正常显示。即 int(3)和 int(10)可以存储的数据大小是相同,限制范围在int的范围与数字无关。数字只是在需要左侧用零填满时起作用。
3、tips
1、在我们用int类型作为id的主键时,建议选择Unsigned,这样存储的范围可以增加一倍
2、判断可能出现的字段长度 合理选用tinyint smallint mediumint 和 int
不是,首先int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M)
所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。1bytes占8字节,4bytes就是32位,而1字节不是0就是1,因此4bytes最高是11111111111111111111111111111111,而最高位的1代表负号,因此正数时最高位要用0,转化成十进制就是2,147,483,647,同理最小负数是-2,147,483,647,mysql默认int是有符号的,无符号时最大值是2^32
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。