PHP学习第11课:mysql 数据类型之数字

2025-10-26 05:03:15

1、Mysql 中的数字有两种类型(整型,浮点型,Decimal):

整型:tinyint,smallint,mediuint,int ,bigint 共5种;

浮点型:float,double 共3种;

特殊型:decimal

见下图:

PHP学习第11课:mysql 数据类型之数字

1、关于整型,首先我们需要了解的知识点如下:

(1)表示的含义,很明了tiny->small->mediu->int->big是一个逐渐变大的过程,代表可以存储的数字范围宽广(注意,这里是数字的范围宽广,而不是数字的大小,因为整型还有有符号和无符号的区分);

(2)存储空间,1->2->3->4->8字节(注意字节的概念,1字节=8比特即1Byte=8bit,字节是数据存储单位,比特是数据传输单位,而数据传输时二进制的,所以1bit代表数据传输中的1或0,这个很重要,希望同学了解);

(3)取值范围,这个既是根据字节和比特的关系得来的,稍后我们举个例子加以说明。

PHP学习第11课:mysql 数据类型之数字

PHP学习第11课:mysql 数据类型之数字

2、以常用的INT为例,其存储空间是4个字节,为什么是取值范围是:

带符号:-2147483648 ~ 2147483647

无符号:0~4294967295

以下是解释:

(1)字段属性UNSIGNED是区分有无符号的标志,设置了unsigned表示禁止负数,取值从0开始。

(2)INT的存储空间是4个字节=4*8=32bit,表示可以存储最多32位的二进制数据流(0或1)。

(3)32位的二进制数据流,转换成10进制,就是2³²;

(4)无符号型,从0开始,所以最大整数为2³²-1;

(5)有符号型,非负数个数 = 负数个数 = 2³²/2 = 2³¹ ,同是由于非负数个数还包括0,所以存储范围为-2³¹~2³¹-1。

其他类型可依次类推得到。

特别注意的是:

int  在32位系统中为,4字节=32bit;

在16位系统中为,2字节=16bit;

在64位系统中为,8字节=64bit。可存储的数的范围是根据bit得到的。

PHP学习第11课:mysql 数据类型之数字

PHP学习第11课:mysql 数据类型之数字

3、int(3)和int(10)有什么区别:

(1)当设置属性包含zerofill的时候才可以看到差异,否则可认为没有差别;

(2)zerofill 顾名思义“用0来填充”,比如当把"12"存储到int(3)或int(10)时,因为不足3位和10位,存储结果分别是:012,0000000012;

(3)当位数足够的时候,当然不需要0来填充了;

(4)int(M)不管M是1,2,3,4,5,10等等,在磁盘上都是占用 4 btyes 的存储空间(32位系统),取值范围不变。

PHP学习第11课:mysql 数据类型之数字

PHP学习第11课:mysql 数据类型之数字

PHP学习第11课:mysql 数据类型之数字

1、浮点型包含三种:单精度浮点数,双精度浮点数,以字符串形式表示的浮点数;

这里面有这个几个问题:

(1)什么是浮点数?

(2)什么是单精度浮点数和双精度浮点数?

解释:

浮点数和定点数是相对的,这里的点指的是小数点,浮点数小数点位置是不固定的,定点数的小数点是固定的。

单精度浮点数:占用4个字节(32位)存储空间,最多有7位十进制有效数字(包含小数点),超出部分会“4舍5入”;

双精度浮点数:占用8个字节(64位)存储空间,可以表示15或16位十进制的有效数字(包含小数点),超出部分会“4舍5入”。

PHP学习第11课:mysql 数据类型之数字

PHP学习第11课:mysql 数据类型之数字

PHP学习第11课:mysql 数据类型之数字

PHP学习第11课:mysql 数据类型之数字

1、decimal(M,D) 是以字符串形式表示的浮点数:

举例说明:decimal(10,0):最大存储9999999999(10个9)

decimal(6,2):最大存储9999.99(6个9)

decimal(10,6):最大存储9999.999999(10个9)

PHP学习第11课:mysql 数据类型之数字

PHP学习第11课:mysql 数据类型之数字

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢