当前位置: 首页 > news >正文

11 mysql float/double/decimal 的数据存储

前言
这里主要是 由于之前的一个 datetime 存储的时间 导致的问题的衍生出来的探究 

探究的主要内容为 int 类类型的存储, 浮点类类型的存储, char 类类型的存储, blob 类类型的存储, enum/json/set/bit 类类型的存储 

本文主要 的相关内容是 float, decimal 类类型的相关数据的存储  

这部分数据 客户端 和 服务器这边的交互 主要是以字符串的形式交互 

服务器这边的存储 主要是 浮点存储, 转换为二进制存储 

基础阅读 mysql tiny/small/medium/big int 的数据存储

 

 

mysql类型 和 java类型对应

驱动的 ResultSetImpl 获取数据的时候有一层封装 

因此不管是 tinyint, smallint, medinumint, int 在业务代码上面获取到的都是 Integer 接收 

unsigned_int 因为 java 中 int 已经覆盖不了值域, 因此使用了 long 来接受 

bigint 对应于类型 long 接收 

unsigned_bigint 和上面 unsigned_int 同理, 使用了 BigInteger 接收 

decimal, unsigned_bigdecimal 使用了 BigDecimal 接收 

float, double 使用 Float, Double 接收 

929e8b1b456d42a89f3247b87cb4bde1.png

 

 

mysql 中 float 的服务器客户端的数据交互

和上面 tinyint 相同 

mysql 服务器中对应的类型为 FLOAT

e1ae6c6cc26d4936ad7596da8a2faa76.png

 

与客户端的交互, 将给定的 float 转换为 十进制 的字符串表示, 然后 响应回去

具体的转换实现在 dtoa.fcvt/gcvt

c6fd79f5403e47c3b62872d438f95a80.png 

 

mysql 服务器 float 的存储

具体服务器存储这边 主要是基于 float 进行存储, ptr 本身存储的是一个 float 的数据 

58454f0e23344ddda4dae0e26ef2c681.png 

 

mysql 中 double 的服务器客户端的数据交互

和上面 tinyint 相同 

mysql 服务器中对应的类型为 DOUBLE

b950ff03108d4030b92775220a0def3c.png

 

与客户端的交互, 将给定的 double 转换为 十进制 的字符串表示, 然后 响应回去

具体的转换实现在 dtoa.fcvt/gcvt

3d90458751124aeaa388f53fa46163b6.png

 

mysql 服务器 double 的存储

具体服务器存储这边 主要是基于 double 进行存储, ptr 本身存储的是一个 double 的数据 

3e5fc59e5408454ba7397c0e5a0d2522.png

 

 

mysql 中 decimal 的服务器客户端的数据交互 

和上面 tinyint 相同 

mysql 服务器中对应的类型为 DECIMAL

8d7a3bdf7b8b41a4b6e269c1a3847d24.png

 

与客户端的交互, 解析给定的 my_decimal, 然后 直接响应回去

506f9abbbdc54e5d9a36b254c495fc2d.png 

 

 

 mysql 服务器 bigdecimal 的存储 

将数据转换为 my_decimal, 然后 按照 my_decimal 的特定的方式进行存储 

ef8735ebc12a40a09c440135a99ded3e.png 

 

 

 

 

相关文章:

11 mysql float/double/decimal 的数据存储

前言 这里主要是 由于之前的一个 datetime 存储的时间 导致的问题的衍生出来的探究 探究的主要内容为 int 类类型的存储, 浮点类类型的存储, char 类类型的存储, blob 类类型的存储, enum/json/set/bit 类类型的存储 本文主要 的相关内容是 float, decimal 类类型的相关数据…...

【高效数据结构——位图bitmap】

初识位图bitmap 位图(Bitmap)是一种用于表示和操作位(bit)的数据结构。它是由一系列二进制位(0 或 1)组成的序列,每个位都可以单独访问和操作。 位图常用于以下情况: 压缩存储&…...

ArrayList LinkedList

ArrayList 和 LinkedList 区别 ArrayList和LinkedList都是Java集合框架中的实现类,用于存储和操作数据。它们在底层实现和性能特点上有一些区别。 数据结构:ArrayList底层使用数组实现,而LinkedList底层使用双向链表实现。这导致它们在内存结…...

iOS砸壳系列之三:Frida介绍和使用

当涉及从App Store下载应用程序时,它们都是已安装的iOS应用(IPA)存储在设备上。这些应用程序通常带有保护的代码和资源,以限制用户对其进行修改或者逆向工程。 然而,有时候,为了进行调试、制作插件或者学习…...

Git学习——细节补充

Git学习——细节补充 1. git diff2. git log3. git reset4. git reflog5. 提交撤销5.1 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时5.2 当提交到了stage区后,想要退回 6. git remote7. git pull origin master --no-rebase8. 分支管理9. g…...

【设计模式】Head First 设计模式——装饰者模式 C++实现

设计模式最大的作用就是在变化和稳定中间寻找隔离点,然后分离它们,从而管理变化。将变化像小兔子一样关到笼子里,让它在笼子里随便跳,而不至于跳出来把你整个房间给污染掉。 设计思想 动态地将责任附加到对象上,若要扩…...

layui实现数据列表的复选框回显

layui版本2.8以上 实现效果如图&#xff1a; <input type"hidden" name"id" id"id" value"{:g_val( id,0)}"> <div id"tableDiv"><table class"layui-hide" id"table_list" lay-filter…...

关于使用RT-Thread系统读取stm32的adc无法连续转换的问题解决

关于使用RT-Thread系统读取stm32的adc无法连续转换的问题解决 今天发现rt系统的adc有一个缺陷&#xff08;也可能是我移植的方法有问题&#xff0c;这就不得而知了&#xff01;&#xff09;&#xff0c;就是只能单次转换&#xff0c;事情是这样的&#xff1a; 我在stm32的RT-T…...

【启扬方案】启扬多尺寸安卓屏一体机,助力仓储物料管理系统智能化管理

随着企业供应链管理的不断发展&#xff0c;对仓储物料管理的要求日益提高。企业需要实时追踪和管理物料的流动&#xff0c;提高物流效率、降低库存成本和减少库存的风险。因此&#xff0c;仓储物料管理系统的实现成为必要的手段。 仓储物料管理系统一体机作为一种新型的物料管理…...

Android Glide使用姿势与原理分析

作者&#xff1a; 午后一小憩 简介 Android Glide是一款强大的图片加载库&#xff0c;提供了丰富的功能和灵活的使用方式。本文将深入分析Glide的工作原理&#xff0c;并介绍一些使用姿势&#xff0c;助你更好地运用这个优秀的库。 原理分析 Glide的原理复杂而高效。它首先基…...

管理类联考——逻辑——汇总篇——知识点突破——形式逻辑——联言选言——真假

角度——真值表 以上考点均是已知命题的真假情况做出的推理,还存在一种情况是已知肢判断P、Q的真假,断定干判断的真假,这种判断过程就是运用真值表。 P ∧ Q的真值 ①如何证明P ∧ Q为假? 由于P ∧ Q的本质是P、Q同时成立,所以只要P、Q有一个为假,整个命题就为假。 ②如…...

ChatGPT数据分析及作图插件推荐-Code Interpreter

今天打开chatGPT时发现一个重磅更新&#xff01;code interpreter插件可以使用了。 去查看openai官网&#xff0c;发现从2023.7.6号&#xff08;前天&#xff09;开始&#xff0c;code interpreter插件已经面向所有chatGPT plus用户开放了。 为什么说code interpreter插件是一…...

说说FLINK细粒度滑动窗口如何处理

分析&回答 Flink的窗口机制是其底层核心之一&#xff0c;也是高效流处理的关键。Flink窗口分配的基类是WindowAssigner抽象类&#xff0c;下面的类图示出了Flink能够提供的所有窗口类型。 Flink窗口分为滚动&#xff08;tumbling&#xff09;、滑动&#xff08;sliding&am…...

记一次反弹shell的操作【非常简单】

#什么是反弹shell 通常我们对一个开启了80端口的服务器进行访问时&#xff0c;就会建立起与服务器Web服务链接&#xff0c;从而获取到服务器相应的Web服务。而反弹shell是我们开启一个端口进行监听&#xff0c;转而让服务器主动反弹一个shell来连接我们的主机&#xff0c;我们再…...

如何排查 Flink Checkpoint 失败问题?

分析&回答 这是 Flink 相关工作中最常出现的问题&#xff0c;值得大家搞明白。 1. 先找到超时的subtask序号 图有点问题&#xff0c;因为都是成功没失败的&#xff0c;尴尬了。 借图&#xff1a; 2. 找到对应的机器和任务 方法很多&#xff0c;这里看自己习惯和公司提供…...

lazarus(pascal)和c语言读日志文件筛选保存为新文件

lazarus(pascal)和c语言读日志文件筛选保存为新文件&#xff0c;源于看日志每次从一个很多内容文件里查找不方便&#xff0c;写个代码输入时分秒参数&#xff0c;然后按行读取比较日志时间&#xff0c;当前秒和上一秒的输出保存为新文件&#xff0c;只保存2秒钟文件小多了&…...

学习JAVA打卡第四十九天

Random类 尽管可以使用math类调用static方法random&#xff08;&#xff09;返回一个0~1之间的随机数。&#xff08;包括0.0但不包括0.1&#xff09;&#xff0c;即随机数的取值范围是[0.0&#xff0c;1.0]的左闭右开区间。 例如&#xff0c;下列代码得到1&#xff5e;100之间…...

Golang数据结构和算法

Golang数据结构和算法 数据的逻辑结构和物理结构常见数据结构及其特点算法的时间复杂度和空间复杂度Golang冒泡排序Golang选择排序Golang插入排序Golang快速排序Golang归并排序Golang二分查找Golang sort包Golang链表Golang container/list标准库Golang栈stackGolang二叉搜索树…...

python 装饰器

装饰器是 Python 中一种功能强大的语法特性&#xff0c;它可以用于在不修改原函数代码的情况下&#xff0c;动态地扩展或修改函数的行为。装饰器本质上是一个函数或类&#xff0c;它接受一个函数作为参数&#xff0c;并返回一个新的函数或类。 下面是装饰器的详细解释和示例&a…...

iOS如何获取设备型号的最新方法总结

每一种 iOS 设备型号都有对应的一个或多个硬件编码/标识符&#xff0c;称为 device model 或者叫 machine name 通常的做法是&#xff0c;先获取设备的 device model 值&#xff0c;再手动映射为具体的设备型号&#xff08;或者直接把 device model 值传给后端&#xff0c;让后…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...