MySQL提供了多种整数类型,从TINYINT到BIGINT,可以存储数据的范围越来越大,同时所需要的存储空间也越来越大,整数类型可以添加自增属性。整数类型分为有符号数和无符号数,可以在数据类型后添加UNSIGNED关键字来标识该类型是有符号还是无符号的。比如INT表示有符号的4字节长度的整数,INT UNSIGNED标识该类型是无符号的4字节长度整数。有符号与无符号的取值范围是不同的,比如TINYINT的取值范围是-128~127,TINYINT UNSIGNED的取值范围是0~255。因为TINYINT占用一个字节,最高位为符号位,所以最大值就是27-1。TINYINT UNSIGNED的8位都用来存储数据,所以最大值为28-1。各个有符号的整数类型的取值范围与占用字节如表17.4.1所示。
表17.4.1 有符号的整数类型的取值范围与占用字节
各个无符号的整数类型的取值范围与占用字节如表17.4.2所示。
表17.4.2 无符号的整数类型的取值范围与占用字节
浮点数类型包括单精度浮点数[float(M,D)型]和双精度浮点数[double(M,D)型]。定点数类型就是decimal(M,D)型。(www.xing528.com)
1.decimal型的取值范围与double相同,但是decimal的有效取值范围由M和D决定,而且decimal型的字节数是M+2。也就是说,定点数的存储空间是由其精度决定的。
2.MySQL中可以指定浮点数和定点数的精度。其基本形式如下:数据类型(M,D)。
其中,“数据类型”参数是浮点数或定点数的数据类型名称;M参数称为精度,是数据的总长度,小数点不占位置;D参数称为标度,是指小数点后面的长度是D。例如,float(6,2)表示数据是float型,数据长度是6,小数点后保留2位。所以,1234.56是符合要求的。
3.注意:上述指定的小数精度的方法虽然都适用于浮点数和定点数,但不是浮点数的标准用法。建议在定义浮点数时,如果不是实际情况需要,最好不要使用。如果使用了,有可能会影响数据库的迁移。
4.相反,对于定点数而言,decimal(M,D)是定点数的标准格式,一般情况下可以选择这种数据类型。
5.如果插入值的精度高于实际定义的精度,系统会自动进行四舍五入处理,使值的精度达到要求。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。