mysql int(3)为什么可以写五位数

mysql int(3)为什么可以写五位数,第1张

mysql int(3)可以写五位数是后面的3决定的。例如:mysql int(M)在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。说白了,除了显示给用户的方式有点不同外,int(M) 跟 int 数据类型是相同的。其中M就表示最大显示宽度。而mysql int(3)最大宽度能够写五位数。int类型,占用字节数为4byte,学过计算机原理的同学应该知道,字节(byte)并非是计算机存储的最小单位,还有比字节(byte)更小的单位,也就是位(bit),一个位就代表一个0或1,8个位组成一个字节,一般字节用大写B来表示byte, 位用小写b来表示bit。

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)


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

原文地址: https://outofmemory.cn/sjk/9586284.html

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

发表评论

登录后才能评论

评论列表(0条)

保存