MySQL数据类型----定点型,数据类型的选择

本文探讨了MySQL中浮点数(float, double)与定点数(decimal)的区别,强调decimal类型能精确存储小数,特别适合金融等领域。通过实例演示了如何创建表、插入和查看数据,以及decimal的默认精度设置。
摘要由CSDN通过智能技术生成

定点型

MySQL中使用浮点数类型和定点数类型来表示小数。

浮点型在数据库中存放的是近似值定点类型在数据库中存放的是精确值
浮点数类型包括单精度浮点数(float型)和双精度浮点数(double型)。定点数类型就是decimal型。
Decimal型的取值范围和double(8字节)相同。但是decimal的有效取值范围由M和D决定,而且Decimal型的字节数是M+2。也就是说,定点数的存储空间是根据其精度决定的。
MySQL中可以指定浮点数和定点数的精度。
其基本形式如下: 数据类型(M,D)
“数据类型”参数是浮点数或定点数的数据类型名称,M参数称为精度,是数据的总长度,小数点不占位置,不超过64。D参数成为标度,是指小数点后面的长度是D,D<30且D<M。
举两个例子:
float(6,2)的含义数据是float型,数据长度是6,小数点后保留2位。所以,1234.56是符合要求的。

创建表
create table test(
float_num float(10,2),
double_num double(20,2),
decimal_num decimal(20,2)
)engine=innodb charset=utf8;
插入数据
insert into test values(1234567.111,1234567890000.666,123456711111.222);
insert into test values(1234567.11,12345678900000000.666,12345671111111111.222);
查看数据
select * from test;

观察表中的数据

decimal型无论写入数据中的数据是多少,都不会存在精度丢失的问题。

decimal型常见于银行系统,互联网金融等,是以字符串的形式进行保存的。默认为decimal(10,0).

浮点数和定点数有其默认的精度,float和double默认会保存实际精度,但这与操作系统和硬件的精度有关。decimal型的默认整数位为10,小数位为0,即默认为整数。

数据类型的选择

1.在指定数据类型的时候一般采用从小原则,能用float类型的就不用double类型。
2.不要把数据表设计的太复杂
3.数据库的设计结果一定是效率与可扩展的折中
4.根据选定的存储引擎,确定合适的数据类型
如MyISAM引擎,最好使用定长char数据列代替变长varchar数据列
MEMORY引擎,用char和varchar都一样,都是作为char类型处理
InnoDB引擎,建议使用varchar类型,数据行使用的是存储总量,而char平均占用空间要多于varchar.

在这里插入图片描述

感谢大家,点赞,收藏,关注,评论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cat God 007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值