mysql 中int和integer什么区别

比如:create table a(
id int primary key
)
create table b(
id Integer primary key

)
如果没有什么区别,那么MySQL为什么有它们俩个哪?

mysql中int和integer区别为:类型不同、默认值不同、存储不同。

一、类型不同

1、int:在mysql中,int的数据类型是基本数据类型,是对integer的拆箱。

2、integer:在mysql中,integer的数据类型是引用数据类型,是对int的装箱。

二、默认值不同

1、int:在设置字段类型为int类型时,字段的默认值是0。

2、integer:在设置字段类型为integer类型时,字段的默认值是null。

三、存储不同

1、int:int是作为对象,直接存储数值。

2、integer:integer需要实例化对象,实际上是生成一个指针指向对象的地址。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
同意 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

感觉纯粹是为方便本回答被提问者和网友采纳
第2个回答  2013-01-24
我今天碰到了个问题 我mysql的数据库中的int类型为null,但是int类型在java中不能赋值为null,
所以要用intger,就像分数如果是缺考就给个null,你用int就会出问题
第3个回答  2009-05-04
mysql中用int就行了,没见过用Integer的-
第4个回答  2009-05-04
没什么区别,int是integer的缩写
相似回答