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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL数据类型----定点型,数据类型的选择

定点型

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.

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
34 5
|
1月前
|
存储 关系型数据库 MySQL
MySQL支持多种数据类型
MySQL支持多种数据类型
108 3
|
1月前
|
存储 关系型数据库 MySQL
什么是mysql的数据类型?
什么是mysql的数据类型?
47 2
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据类型
MySQL数据类型
52 2
|
3月前
|
关系型数据库 MySQL Linux
数据类型和运算符(MySQL服务器的安装,MySQL客户端,数据类型,运算符,MySQL的语法规范)
无论是对于初学者还是有经验的开发者,了解MySQL的安装、客户端使用、数据类型、运算符和语法规范都是至关重要的。这不仅有助于高效地管理和查询数据,而且对于设计和实现数据库解决方案来说是基础工作。通过深入学习和实践这些知识,您可以更好地发挥MySQL数据库的强大功能。
34 2
|
3月前
|
存储 关系型数据库 MySQL
MySQL 中的 BLOB 数据类型深入解析
【8月更文挑战第31天】
452 0
|
3月前
|
存储 关系型数据库 MySQL
|
3月前
|
存储 XML 关系型数据库
深入理解MySQL中的BLOB和TEXT数据类型
【8月更文挑战第31天】
583 0
|
3月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
390 0
|
4月前
|
存储 SQL 关系型数据库
MySQL设计规约问题之存储状态、性别等信息时,应该使用哪种数据类型
MySQL设计规约问题之存储状态、性别等信息时,应该使用哪种数据类型