网站建设资讯

NEWS

网站建设资讯

包含mysql中int怎么写的词条

MySQL int 类型的长度和范围解惑

Mysql 建表过程中:

创新互联主营固始网站建设的网络公司,主营网站建设方案,重庆APP开发公司,固始h5小程序定制开发搭建,固始网站营销推广欢迎固始等地区企业咨询

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 [?1 为什么不是32次方?] [?2 为什么要减去1?],即 -2147483648 ~ 2147483647; int 无符号(unsigned) 的 范围就是 0 到 2的32次方减去1。

知道了 int 类型的范围后,我们再来看看长度是什么意思。 在MySQL手册中,字段类型的长度用 “M” 表示,表示最大显示宽度。 int 的 最大有效显示宽度是 255。 注意: 此处表示 显示宽度 和 存储大小或类型及范围 无关

参考:

1、

简单谈谈MySQL中的int(m)

我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11)。那么这里为什么是11呢?代表的又是什么呢?

以前我一直以为这里是在限制int显示的宽度,后来仔细研究和通过上网查询发现,事实并不是那样的。

确切的来说,这里的“宽度”只是一个“预期值”,它所代表的仅仅是你在设计数据表结构时,想让该列日后显示的值宽度为多少,但是具体存入值的宽度多少不会受任何影响。

当然,它的作用不仅如此,在存入数据的时候,还是有一定区别的,这一点可以通过设置字段的zerofill可以看出。比如这里我们创建一个数据表,结构如下:

create

table

test

(

num

int(5)

zerofill

);

上面代码创建一个名为test的表,结构很简单,表中只有一个名为num的字段,类型为int,宽度为5,为了看出宽度方便,我们又添加一个zerofill属性(该属性会让存入数值在不足宽度情况下,左侧补0)

然后我们开始插入数据:

mysql

insert

into

test

values(1),(11),(123),(12345),(123456),(1234567);

Query

OK,

6

rows

affected

(0.00

sec)

Records:

6

Duplicates:

Warnings:

打印结果:

mysql

select

*

from

test;

+---------+

|

num

|

+---------+

|

00001

|

|

00011

|

|

00123

|

|

12345

|

|

123456

|

|

1234567

|

+---------+

6

rows

in

set

(0.00

sec)

由以上结果,不难看出,如果字符少于设置(期望值)宽度,在设置了zerofill属性的情况下,左侧会统统补0;但是如果超出则不受任何影响。也就是说这里的int(m)中m只是一个预期值,和真实数据宽度并没多大关系。

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

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。

mysql中10-3怎么写

Mysql数据表定义中我们经常用int(M),这个M默认是11,我们可以写10,或者3这个东西对于mysql存储的数值没有任何影响,mysql存储的数值范围如下所示(32位系统),这个定义的唯一作用,需要与zerofill配合使用,如果启用了zerofill,就是当数值的位数M的时候没有任何作用,如果启用了zerofill,程序中对查询出的int值需要做intval处理才能正确使用,其实是一件比较坑爹的事情,所以基本没有人这么用总结一句话就是,int(M),M其实对我们没有任何影响,建议大家定义表结构时忽略此值


网站栏目:包含mysql中int怎么写的词条
转载源于:http://njwzjz.com/article/ddodjdg.html