mysql decimal型转化为float_5分钟搞懂MySQL数据类型之数值型DECIMAL类型

5分钟搞懂MySQL数据类型

之数值型--DECIMAL类型

DECIMAL类型的语法:DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]。其中M指定的是数字的总位数(精度,最大65,默认值10),D指定的是小数点后数字的位数(最大30,并且不能大于M),如果D为0或未指定,表示该数值没有小数,也就是说DECIMAL(M)=DECIMAL(M,0)。

举几个示例:

mysql> create table t1(salaryDECIMAL(5,2));

Query OK, 0 rows affected (0.12 sec)

mysql> insert into t1 values (999.99);

Query OK, 1 row affected (0.01 sec)

mysql> insert into t1 values (999);

Query OK, 1 row affected (0.02 sec)

mysql> insert into t1 values (-999.99);

Query OK, 1 row affected (0.02 sec)

mysql> select * from t1;

+---------+

| salary |

+---------+

| 999.99 |

| 999.00 |

| -999.99 |

+---------+

3 rows in set (0.02 sec)

mysql> insert into t1 values (1000);

ERROR 1264 (22003): Out of range value forcolumn 'salary' at row 1

mysql> insert into t1 values (999.999);

ERROR 1264 (22003): Out of range value forcolumn 'salary' at row 1

在本例中,salary字段能够存储的数值范围即是-999.99 to 999.99。认真看,看懂了这个示例中m, d的作用,应该能帮助大家运用好DECIMAL类型。

那么,DECIMAL到底占用多少空间呢?这个,得看情况。MySQL采用二进制格式保存DECIMAL值,每个数值的整数和小数部分都是分别独立存储,并且会将每9个数位打包成4个字节,剩余不到9个数位的,再分配另外的空间。不同数位长度与字节数之间的关系如下表:

数位长度存储空间
1-21字节
3-42字节
5-63字节
7-94字节

听起来可能有些抽象,还是通过示例来补充描述一下吧。例如DECIMAL(18,9)列小数点前后各有9个数位,因此各需要4个字节存储;DECIMAL(20,9)列的小数部分需要4个字节,整数部分11个数位就需要4+1共5个字节;DECIMAL(25)列共需要4+4+4共计12个字节的存储空间。

NUMERIC类型的实现与DECIMAL相同,因此搞明白DECIMAL就同理可得NUMERIC了。

8b3596133adecebae7b5551359ee2baa.gif

点击了解:5分钟搞懂MySQL数据类型之整型--INT类型

f263bef289978331b55bff06328da22f.gifENDe7206a0dee7f8978843aea31e94a30ad.png扫码关注我们勤勤恳恳,善始善终持之以恒,专心致志f263bef289978331b55bff06328da22f.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试必问JVM调优,那.NET5呢?

JVM调优已经是普通Java工程师的必修课了,而.NET开源快5年了,CLR层面的优化到目前都不多见,甚至常用的性能调优工具都还没玩过。.NET5马上来了,要想在互联网大潮中逆袭,光靠平台是不够的,开发者也得给力才行…

win10新建管理员账户_【经验篇001】Win10专业版如何开启超级管理员账户

关注我们前言介绍我们在使用Win10系统的时候,有时候安装一些特殊的专业类软件,需要系统赋予软件特殊的权限,那就需要使用超级管理员帐户,Win10系统安装时候,Administrator账户默认是禁用的,所以我们就需要开…

SQL Server in Docker - 还原数据库

SQL Server in Docker 还原数据库上一回演示了如果在Docker环境下安装SQL Server(使用Docker运行SQL Server),这次我们来演示下如何还原一个数据库备份文件到数据库实例上。使用winscp上传bak文件到linux服务器上一回我们启动docker容器的时候使用了-v参数挂账了本地…

Xamarin 从零开始部署 iOS 上的 Walterlv.CloudKeyboard 应用

本文将告诉大家如何从零开始在 iOS 上部署 Walterlv.CloudKeyboard 应用。这个 Walterlv.CloudKeyboard 应用是一个云输入法应用,在 GitHub 完全开源,采用 Xamarin 开发,用途是让手机接收电脑端的打字输入的输入法。因为我没有在 iOS 上找到任…

Win10 Terminal + WSL 2 安装配置指南,精致开发体验

自从 Windows Terminal 正式发布后就再没有用过 Windows 系统自带的终端了。主要是 Terminal 简洁且灵活,更重要的是支持特殊字体,通过一些简单的配置可以使得终端看起来更舒适养眼。自从 Win 10 有了 Linux 子系统(WSL)&#xff…

mysql数据转储方法_Mysql数据库各种导出导入数据方式的区别(我的理解错误还望指正)...

mysqldump,NAVICAT转储,select * outfile在千级数据,万级,百万级数据下的表现。千级数据mysqldump导出sql文件导出是出了拒绝访问的错误;为对应目录(.sql文件要保存的目录)的对应用户添加(正在使用的用户)添加写入权限即可。mysql…

JetBrains 开发者调查 - 编程语言趋势

几个月前在公众号里发布了 StackOverflow 2020 开发者调查结果,其结果对 .NET Core 很友好。今天我们看看 JetBrains 2017-2020 四年的开发者调查结果统计,JetBrains 是偏 Java 系的,尤其是本家的 Kotlin 语言。 我们看一下在编程语言方面的趋…

mycli mysql_MyCLI :易于使用的 MySQL/MariaDB 客户端

导读MyCLI 是一个易于使用的命令行客户端,可用于受欢迎的数据库管理系统 MySQL、MariaDB 和 Percona,支持自动补全和语法高亮。它是使用 prompt_toolkit库写的,需要 Python 2.7、3.3、3.4、3.5 和 3.6 的支持。MyCLI 还支持通过 SSL 安全连接…

究竟是什么可以比反射还快实现动态调用?

戏精分享 C#表达式树,第一季正式完稿 前不久,我们发布了《只要十步,你就可以应用表达式树来优化动态调用》。观众们普遍反映文章的内容太多复杂不太容易理解。因此,我们以此为契机发布了《戏精分享 C#表达式树》系列视频。现在&am…

BCVP,想真正为社区做努力的开发者们

基于Net/Core,快速搭建 API & SPA 及微服务应用组织BASE NETCORE (VUE) PROJECT TEAM每一个.NET开发者都可以通过自己的开源项目(最好可以配套简单发表些文章)在这里进行分享,BCVP开发者组织的意义就是激发和挖掘更多的作品,可能偏基础&a…

求关系模式r的所有候选码_2_1关系数据库的基本概念

1.关系数据结构单一的数据结构-------关系现实世界中的实体以及实体间各种联系均用关系来表示2.域:一组具有相同数据类型的值的集合。例如:整数实数介于某个取值范围的整数指定长度的字符串集合{“男”,“女”}.............3.笛卡尔积3.1 给…

Docker:恢复对开源项目的无限制访问

喜欢就关注我们吧!继宣布针对免费用户的拉速限制声明之后,Docker 现如今又透露了进一步的策略更新,旨在恢复对开源项目的无限制访问。Docker 方面此表示,为了支持开源社区,他们为开源项目制定了一个特殊的计划&#xf…

真正拖垮你的,是沉没成本

职场&认知洞察 丨 作者 / findyi这是findyi公众号分享的第91篇原创文章一个洋友问:“洋哥,我在这家创业公司3年了,但老板承诺的股份一直没兑现。现在想离开,但又特别不甘心,我应该怎么做”。我回复:“找…

别“躺”着了,赶紧把「复盘」做起来

大家好,我是Z哥。有一种类型的故事大多数人都喜欢,就是“屌丝逆袭”的故事,这也是很多小说的题材。不管是在小说还是现实中,这样的逆袭都不是一蹴而就的。并且,大多数人一直只在逆袭的路上,最终能成功完成逆…

注意.NET Core进行请求转发问题

【导读】近日,有关注我公众号的小伙伴私信我,遇到一个问题搞了很久没解决,此问题具有参考意义,这里跟大家分享下,希望对你能有所帮助内网环境跟外网隔离,现在外网的请求都需要一个专用服务器转接到内网处理…

react 数字转字符_深入浅出 React -- JSX

什么是 JSXJSX 是一个 JavaScript 的语法扩展。JSX 可能会使人联想到模版语言&#xff0c;但它具有 JavaScript 的全部功能在 React 中&#xff0c;JSX 仅仅是 React.createElement(component, props, ...children) 函数的语法糖如下 JSX 代码&#xff1a;<MyButton color&q…

mybatis mysql schema_MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql

一、MyBatis简介与配置MyBatisSpringMySql1.1MyBatis简介MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。…

.NET架构小技巧(7)——做好小的项目

一屋不扫&#xff0c;何以扫天下。再说也没有那么多天下(大系统)可扫&#xff0c;更多的是一个个自己居住的小屋(手边的小项目&#xff0c;子模块)&#xff0c;所以认真的开始扫自己的小屋。在visual studio中&#xff0c;解决方案(Solution)下可以创建多个项目(Project)&#…

使用 C# 9.0 新语法提升 if 语句美感

C# 语言一贯秉承简洁优美的宗旨&#xff0c;每次升级都会带来一些语法糖&#xff0c;让我们可以使代码变得更简洁。本文分享两个使用 C# 9.0 提升 if 语句美感的技巧示例。使用属性模式代替 IsNullOrEmpty在任何你使用 IsNullOrEmpty 的时候&#xff0c;可以考虑这样替换&#…

在 Azure App Service 上启用 Application Request Routing

点击上方蓝字关注“汪宇杰博客”导语我们在IIS上经常使用 Application Request Routing (ARR) 模块做反向代理。Azure App Service 使用的也是 IIS&#xff0c;照理来说应该也能做反代&#xff0c;但默认情况下它是不行的&#xff0c;我们来看看如何给在 App Service 上启用 AR…