mysql int类型的范围

mysql int类型的范围,第1张

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(m)

zerofill,加上zerofill后m才表现出有点点效果,比如

int(3)

zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10)不加

zerofill,则它们没有什么区别.m不是用来限制int个数的.int(m)的最大值和最小值与undesigned有关,最下面那副图有说明.

mysql>

create

table

t

(t

int(3)

zerofill)

query

ok,

0

rows

affected

(0.00

sec)

mysql>

insert

into

t

set

t

=

10

query

ok,

1

row

affected

(0.00

sec)

mysql>

select

*

from

t

+——+

|

t

|

+——+

|

010

|

+——+

1

row

in

set

(0.11

sec)

zerofill

with

default

width,

the

same

as

int(10):

mysql>

create

table

t

(t

int

zerofill)

query

ok,

0

rows

affected

(0.02

sec)

mysql>

insert

into

t

set

t

=

10

query

ok,

1

row

affected

(0.02

sec)

mysql>

select

*

from

t

+————+

|

t

|

+————+

|

0000000010

|

+————+

1

row

in

set

(0.08

sec)

without

zerofill:

mysql>

create

table

t

(t

int)

query

ok,

0

rows

affected

(0.01

sec)

mysql>

insert

into

t

set

t

=

10

query

ok,

1

row

affected

(0.01

sec)

mysql>

select

*

from

t

+——+

|

t

|

+——+

|

10

|

+——+

1

row

in

set

(0.00

sec)

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需要实例化对象,实际上是生成一个指针指向对象的地址。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6118728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存