Mysql - 定点型(DECIMAL)的使用详解及练习

目录

🐶1. 前言:

🐶2. DECIMAL类型简介

🐶3. Decimal使用实战

🥪#结论1:小数位不足会自动补0

🥪#结论2:小数位超出会截断 并按四舍五入处理。 

🥪#结论3:小数位不足会自动补0 

🥪#结论4:首位数字为0自动忽略 

🥪#结论5:超出存储范围会报错

🐶4. 使用小结

🐶5. leetcode练习题


🐶1. 前言:

当我们需要存储小数,并且有精度要求,比如存储金额时,通常会考虑使用DECIMAL字段类型。接下来,为你讲述DECIMAL字段类型的使用场景及方法。

🐶2. DECIMAL类型简介

DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)。NUMERIC与DECIMAL同义,如果字段类型定义为NUMERIC,则将自动转成DECIMAL。

DECIMAL在MySQL内部以字符串形式存放,比浮点数更精确。定点类型占M+2个字节

对于声明语法DECIMAL(M,D),自变量的值范围如下:

  • M是最大位数(精度),范围是1到65。可不指定,默认值是10。

  • D是小数点右边的位数(小数位)。范围是0到30,并且不能大于M,可不指定,默认值是0。

例如字段 salary DECIMAL(5,2),能够存储具有五位数字和两位小数的任何值,因此可以存储在salary列中的值的范围是从-999.99到999.99。

🐶3. Decimal使用实战

1)创建具有DECIMAL字段的表 验证decimal默认是decimal(10,0)

create table decimal_tb(
    col1 decimal,
    col2 decimal(5,2)
);

show create table decimal_tb;

结果:

2) 插入数据测试

🥪#结论1:小数位不足会自动补0
insert into decimal_tb values (100,100);
select *
from decimal_tb;

 结果:

🥪#结论2:小数位超出会截断 并按四舍五入处理。 
insert into decimal_tb values (1.23,1.23);
select *
from decimal_tb;

🥪#结论3:小数位不足会自动补0 
insert into decimal_tb values (10.2,10.2);
select *
from decimal_tb;

🥪#结论4:首位数字为0自动忽略 
insert into decimal_tb values (09.9,09.9);
select *
from decimal_tb;

🥪#结论5:超出存储范围会报错
insert into decimal_tb values (9999,9999);

🐶4. 使用小结

这里总结下使用DECIMAL应该注意的事项:

  • DECIMAL(M,D)中,M范围是1到65,D范围是0到30。

  • M默认为10,D默认为0,D不大于M。

  • DECIMAL(5,2)可存储范围是从-999.99到999.99,超出存储范围会报错。

  • 存储数值时,小数位不足会自动补0,首位数字为0自动忽略。

  • 小数位超出会截断,产生告警,并按四舍五入处理。

  • 使用DECIMAL字段时,建议M,D参数手动指定,并按需分配。

🐶5. leetcode练习题

SQL178 分数排名

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构实验7:查找的应用

目录 一、实验目的 二、实验原理 1. 顺序查找 2. 折半查找 3. 二叉树查找 三、实验内容 实验一 任务 代码 截图 实验2 任务 代码 截图 一、实验目的 1.掌握查找的基本概念; 2.掌握并实现以下查找算法:顺序查找、折半查找、二叉树查找。 …

2.RHCSA启动配置

rht-clearcourse 0 #重置练习环境 rht-setcourse rh134 #切换CSA练习环境 cat /etc/rht #查看当前环境 virt-manager #打开KVM控制台 rht-vmctl start classroom #必做,start all不会包含classroom,需…

【Linux】Ubuntu的gnome切换KDE Plasma

文章目录 安装KDE Plasma桌面环境添加软件源并更新apt安装kubuntu-desktop(作者没有成功)aptitude安装kubuntu-desktop多次aptitude install(特别重要特别重要)其他kde软件包 卸载gnome桌面 Ubuntu自带的桌面环境是gnome&#xff…

PSoc62™开发板之rtc时间获取

实验目的 1.使用PSoc62™芯片读取内部rtc时间 2.OLED屏幕显示当前时间戳 实验准备 PSoc62™开发板SSD1306 OLED模块公母头杜邦线 芯片资源 PSoC 6系列MCU时钟系统由以下几部分组成,PSoc62™开发板没有接外部时钟源,所以只能从IMO、ILO、PILO里边配…

EtherNet/IP开发:C++搭建基础模块,EtherNet/IP源代码

这里是CIP资料的协议层级图,讲解协议构造。 ODVA(www.ODVA.org)成立于1995年,是一个全球性协会,其成员包括世界领先的自动化公司。结合其成员的支持,ODVA的使命是在工业自动化中推进开放、可互操作的信息和…

SQL注入实战:Update注入

一:Update注入原理 有的程序员在写源代码的时候,只是对查询的sql语句的用户输入内容进行了过滤,忽略了update 类型sql语句的用户输入的内容的过滤 二、mysql的Update语句复习 update语句可用来修改表中的数据,简单来说基本的使…

算法每日一题: 分割数组的最大值 | 动归 | 分割数组 | 贪心+二分

Hello,大家好,我是星恒 呜呜呜,今天给大家带来的又是一道经典的动归难题。 题目:leetcode 410给定一个非负整数数组 nums 和一个整数 k ,你需要将这个数组分成 k_ 个非空的连续子数组。设计一个算法使得这 k _个子数组…

51单片机电子密码锁Proteus仿真+程序+视频+报告

目录 视频 设计分析 系统结构 仿真图 资料内容 资料下载地址:51单片机电子密码锁Proteus仿真程序视频报告 视频 单片机电子密码锁Proteus仿真程序视频 设计分析 (1)能够从键盘中输入密码,并相应地在显示器上显示‘*’; (2)能够判断密码…

反序列化字符串逃逸(上篇)

首先,必须先明白,这个点并不难,我给大家梳理一遍就会明白。 反序列化字符串逃逸就是序列化过程中逃逸出来字符,是不是很简单,哈哈哈! 好了,不闹了,其实: 这里你们只要懂…

【C++ | 数据结构】从哈希的概念 到封装C++STL中的unordered系列容器

文章目录 一、unordered系列容器的底层结构 - 哈希1. 哈希概念2. 哈希冲突 二、解决哈希冲突方法一:合理设计哈希函数🚩哈希函数设计原则🚩常见哈希函数 方法二:开闭散列🚩闭散列线性探测法(实现&#xff0…

Linux操作系统——理解文件系统

预备知识 到目前为止,我们所学习到的关于文件的操作,全部都是基于文件被打开,被访问,访问期间比较重要的有重定向,缓冲区,一切皆文件,当我们访问完毕的时候需要将文件关闭,关闭时那…

Python 生成 图片网页列表 显示路径和建立时间 笔记

Python 一键 生成 图片网页列表 显示路径和建立时间 (方便查看复制路径、重复一键生成) 支持格式:jpg \png\ svg\ webp 图片网页列表 图示: 参考代码: # -*- coding: utf-8 -*- import os import datetime# 指定图片…

八股文学习日常第一期(20240121)

零、前言 1、目的 帮助掌握面试题,就八股文相关内容展开进行学习和整理,也方便之后的复习和巩固。 2、八股文内容来源 ①https://blog.csdn.net/w20001118/article/details/125724647 一、具体内容分析 1、类的完整书写方式 1.1、类 [Access Mod…

Stream toList不能滥用以及与collect(Collectors.toList())的区别

Stream toList()返回的是只读List原则上不可修改,collect(Collectors.toList())默认返回的是ArrayList,可以增删改查 1. 背景 在公司看到开发环境突然发现了UnsupportedOperationException 报错,想到了不是自己throw的应该就是操作collection不当。 发…

2.上传图片到Minio服务中

上传图片 界面原型 第一步: 用户在课程信息编辑界面可以上传课程图片或者修改上传的课程图片 第二步: 请求媒资管理服务将课程图片上传至分布式文件系统同时在媒资管理数据库保存文件信息,上传成功后返回图片在MinIO中的地址 第三步: 请求内容管理服务保存课程信息含课程封…

【网站项目】基于SSM的274办公自动化管理系统

🙊作者简介:多年一线开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【Linux系统编程】进程优先级

文章目录 1. 优先级的基本概念2. 为什么存在优先级3. 查看系统进程4. PRI and NI5. top命令修改已存在进程的nice值6. 其他概念 1. 优先级的基本概念 本篇文章讲解进程优先级,首先我们来了解一下进程优先级的概念: cpu资源分配的先后顺序,就…

burp靶场--访问控制【越权】

【Burp系列】超全越权漏洞实验总结 https://portswigger.net/web-security/access-control/lab-unprotected-admin-functionality 1. 访问控制【越权】 https://portswigger.net/web-security/access-control#what-is-access-control ### 什么是访问控制: 访问控…

php基础学习之常量

php常量的基本概念 常量是在程序运行中的一种不可改变的量(数据),常量一旦定义,通常不可改变(用户级别)。 php常量的定义形式 使用define函数:define("常量名字", 常量值);使用cons…

Mac NTFS 磁盘读写工具选哪个好?Tuxera 还是 Paragon?

在使用 Mac 电脑时,我们经常需要读写 NTFS 格式的硬盘或 U 盘。然而,由于 Mac 系统不支持 NTFS 格式的读写,因此我们需要借助第三方工具来实现这个功能。而在市场上,Tuxera 和 Paragon 是两款备受推崇的 Mac NTFS 磁盘读写工具。那…