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,一经查实,立即删除!

相关文章

mysql 变量 数据类型_浅谈mysql(二)数据类型

//我。。。我才是不是傲娇呢//如有问题还请多多指教。上回我们说到我们如何使用MySQL,关键是要看它的用途。用途衍生语句。之后文章的思路,也是如此,从用途出发,然后再到语句。那么,我们先问几个问题,我们用…

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 上找到任…

c 命令导出数据到mysql_MySQL命令行导出数据库

MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录)2,导出数据库&am…

mysql权限create细化_mysql权限精细化分配-阿里云开发者社区

mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为:grant 权限 on 数据库对象 to 用户一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利grant select on testdb…

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 安全连接…

asp.net core 5.0的一些模块

.net 5就要发布了,把asp.net core 3.1的一些模块改成了5.0来适配,基本都是体力活,没有太大改动。ORMdapper一个轻量级的ORM,重点实现SQL语句实体映射,用sql不失灵活高效,映射用实体不失简便快捷&#xff0c…

mysql报4934_mysql-Mariadb语法错误1064(42000)

因此,当我尝试在MariaDB中运行此脚本时收到以下错误:“ ERROR 1064(42000):您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册以获取正确的语法在附近使用CREATE TABLE customers (customer_id int NOT NULL,customer_f在第1行奇…

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

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

mysql查询语句不返回_PHP-CI MySQL查询联接表,并且where语句不返回所...

我有3个表要联接,但是当我在第三个表上使用where语句,而第三个表没有它时,即使我使用的是left,它也不会返回第一和第二个表中的行加入.Table 1---------------------------------| acc_PID | acc_name | acc_type |---------------------------------| 1 | Account 1 | 1 || 2 …

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…

python elasticsearch查询_python 查询Elasticsearch的小例子

#!/usr/bin/env python# -*- coding: utf-8 -*-from sfo_common.agent import Agentfrom sfo_common.import_common import *class ElkLog(object):"""处理ELK数据类"""def __init__(self):passdef get_elk_log_json(self):"""通…

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

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