本篇文章MySQL版本:

+-----------+
| version() |
+-----------+
| 5.5.53    |
+-----------+

存储带小数的类型

  • 浮点数和定点数类型来存储带小数的数值;
  • 使用(M,D)的方式设定M的精度(或显示的总位数)和D标度(小数的位数)。

FLOAT

正常格式

创建一个长度为3,小数点之后长度为2的单精度浮点型字段:

mysql> create table t8 (-> col1 float(3,2)-> );
Query OK, 0 rows affected (0.01 sec)

插入一条正常数据:

mysql> insert into t8 values (3.33);
Query OK, 1 row affected (0.00 sec)

插入一条小数点后面只有一位的数据:

mysql> insert into t8 values (3.3);
Query OK, 1 row affected (0.00 sec)

插入一条小数点后面大于指定的长度的数据:

mysql> insert into t8 values (3.333);
Query OK, 1 row affected (0.00 sec)

插入一条小数点后面大于指定长度的数据(四舍五入):

mysql> insert into t8 values (3.336);
Query OK, 1 row affected (0.00 sec)

查询:

mysql> select * from t8;
+------+
| col1 |
+------+
| 3.33 |
| 3.30 |
| 3.33 |
| 3.34 |
+------+
4 rows in set (0.00 sec)

错误用法

插入一条整数长度为2,小数长度为1的数据:

mysql> insert into t8 values(33.3);
Query OK, 1 row affected, 1 warning (0.00 sec)

总长度为3,小数点后面为1,都没有超过规则。但是执行完,返回 一个警告。

看一下结果:

mysql> select * from t8;
+------+
| col1 |
+------+
| 3.33 |
| 3.30 |
| 3.33 |
| 3.34 |
| 9.99 |
+------+
5 rows in set (0.00 sec)

不同版本返回结果不同

  • 5.6会提示报错,提示 超出长度范围,是违法数据,原因也就是说默认设置长度为3,小数长度为2,所以插入33.3就等于插入了33.30,超出总长度报错;
  • 5.5版本可以正常插入,但是只能插入最大值,也就是 整型1位,小数2位。

DOUBLE

double和float用法大同小异,只是范围广一点,不再做多余陈述;

DECIMAL

mysql> help DECIMAL;
Name: 'DECIMAL'
Description:
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
  • The maximum number of digits (M) for DECIMAL is 65.
  • The maximum number of supported decimals (D) is 30.
  • If D is omitted,the default is 0.
  • If M is omitted, the default is 10.

MySQL最佳入门 - MySQL数据类型之存储带小数的类型相关推荐

  1. Redis入门第二篇【存储数据结构之string类型】

    tags: Redis title: Redis入门第二篇[存储数据结构之string类型] Redis存储的数据结构 Redis支持的数据结构有好几种: It supports data struc ...

  2. mysql key_block_size_Mysql入门mysql Key_buffer_size参数的优化设置

    <Mysql入门mysql Key_buffer_size参数的优化设置>要点: 本文介绍了Mysql入门mysql Key_buffer_size参数的优化设置,希望对您有用.如果有疑问 ...

  3. MySql基础入门-mysql体系结构

    mysql体系结构:      由:连接池组件.管理服务和工具组件.sql接口组件.查询分析器组件.优化器组件.                 缓冲组件.插件式存储引擎.物理文件组成.      m ...

  4. SQL快速入门 ( MySQL快速入门, MySQL参考, MySQL快速回顾 )

    SQL 先说点废话,很久没发文了,整理了下自己当时入门 SQL 的笔记,无论用于入门,回顾,参考查询,应该都是有一定价值的,可以按照目录各取所需.SQL数据库有很多,MySQL是一种,本文基本都是SQ ...

  5. 如何向mysql表中添加数据类型_java中怎么把data类型的数据添加到数据库?

    这种问题应该算是很初级的问题了,项目一直用的是util包下的date,所以临时看了一下sql.date的源码: 由源码,很容易可以看出来,sql.date提供了两种构造方法: 一. 提供年月日 @De ...

  6. MySQL基础入门【3】

    文章目录 13 补充知识,查询结果的去重 14 连接查询 14.1 什么是连接查询? 14.2 连接查询的分类? 14.3 基础知识 补充,表的别名 14.4 内连接 等值连接 非等值连接 自连接 1 ...

  7. mysql数据库入门教程

    Markdown database notebook Markdown database notebook 1.1. Mysql知识/基础 1.1.1. Msyql的基本知识 1.2. Mysql知识 ...

  8. mysql从入门到精通之数据库安装图解

    Mysql是基于C/S架构的.客户端/服务器Clinent /Server 安装版本建议:对于开源软件,不要追求最新的版本,最好是经过线上测试比较稳定的,也就是生产环境中的稳定版的,请务必选用稳定版本 ...

  9. 阿里云rds for mysql平台介绍_阿里云RDS for MySQL 快速入门——笔记

    1初始化配置 1.1设置白名单 创建RDS实例后,需要设置RDS实例的白名单,以允许外部设备访问该RDS实例.默认的白名单只包含默认IP地址127.0.0.1,表示任何设备均无法访问该RDS实例. 设 ...

最新文章

  1. 数据库为什么使用B+树而不是B树
  2. LoadRunner 11.0 - 安装破解(个人试用成功)
  3. 图解内存搜索工具初步使用
  4. Lesson 008 —— python 初识
  5. DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3、MobileNet、InceptionV3、VGG系列、ResNet、Mask R-CNN )下载地址集合(持续更新)
  6. centos7离线安装mysql_Centos7离线安装metasploit详细教程
  7. kaggle(02)-房价预测案例(基础版)
  8. SAP BUSINESS ONE的优势
  9. 使用实体框架核心和C#创建具有Dotnet核心的自定义Web爬虫程序
  10. html在线测试 css,HTML+CSS测试
  11. SQL server数据缓存依赖
  12. 针对 Java 开发人员的 C# 编程语言
  13. /etc/cron.deny 中关闭某一用户的 crontab
  14. LINUX SHELL中,如何查找某些文件并删除
  15. 3星|《未来公司》:Uber简史
  16. unity3d 双人巡逻兵网络游戏
  17. android缩放组件,Android可放大缩小的图片浏览缩放控件
  18. 书论55 郝经《移诸生论书法书》
  19. 取消双Shift全局搜索
  20. html摄氏度转换华氏度,摄氏温度与K氏和华氏是怎样换算的?

热门文章

  1. Android人脸识别(已开源)
  2. Gutenberg 11.8.0 有哪些新变化?
  3. 大电流导电滑环设计要点一般会有那些
  4. java中t_java中的'\t'是什么意思?
  5. 社区共读《Python编程从入门到实践》第三天阅读建议
  6. 简户检测 | 上海可靠性——电子胶带剥离力测试、胶带初粘力试验、胶黏剂剪切强度试验、高速剥离力测试、拉力测试
  7. UE4虚幻引擎,编辑器基础应用,使用技巧(五)
  8. HBase的核心模块介绍
  9. 网页注册表单设计原则
  10. 从One-hot, Word embedding到Transformer,一步步教你理解Bert