前言
mysql系列最近三篇均关注了和我们日常工作或学习密切相关的安全话题,通过介绍相关领域知识或实践,为有需要的盆友提供便捷的参考方案。
从本文开始,博主打算换个“口味”
,正如吃饭需要“酸甜苦辣咸”
一样,数据类型(data types)是mysql存储的基本标准。今天博主带着各位先深入学习其中之一:numeric
。
一、数值类型综述
mysql支持数值类型,主要包括两类:
- 精确的数值数据类型:
integer、smallint、decimal和numeric - 近似的数值数据类型:
float、real和double precision
二、数值类型详解
1. numeric
1.1 unsigned或signed
numeric类型允许unsigned(无符号)和signed(有符号)。其中signed是默认属性,unsigned用于限制数值为非负。它们的区别就是unsigned扩展了整型数据的可用范围,但是并没有改变类型存储的数据范围。
1.2 数据类型划分
numeric包括以下主要的数据类型:
类型 | 说明 |
---|---|
bit | 位,取值[1,64],默认是1 |
tinyint | 短整数,取值[-128,127] ;如无符号,取值[0,255] |
bool,boolean | 等同tinyint[1],0代表false,非0代表1 |
smallint | 短整数,取值[-32768,32767] ;如无符号,取值[0,65535] |
mediumint | 中等整数,取值[-8388608,8388607] ;如无符号,取值[ 0,16777215] |
int,integer | 正常整数,取值[-2147483648,2147483647] ;如无符号,取值[ 0,4294967295] |
bigint | 长整数,取值[ -9223372036854775808,9223372036854775807] ;如无符号,取值[0,18446744073709551615] |
decimal | 一个“固定” 的浮点数,支持的最大长度65(默认10),最大的小数位数30(默认0) |
float | 一个单精度浮点数,取值[3.402823466e+38,-1.175494351e-38]和[1.175494351e-38,3.402823466e+38],可精确到小数点7位左右。该类型的数据精度随硬件或操作系统的差异会有所不同 |
double | 一个双精度浮点数,取值[-1.7976931348623157e+308,-2.2250738585072014e-308]和[0,2.225073585072014e-308-1797693134863157e+308],可精确到小数点15位左右 |
2. integer类型取值和存储要求
3. fixed-point类型取值和存储要求
decimal
和numeric
类型可以存储精确的浮点数据,如金额类数据。比如创建一个注册资本字段:regcap decimal(10,2),代表长度为10位,并保留2位小数。
提示
:在mysql中,numeric等同于decimal。
4. floating-point类型取值和存储要求
float
和double
类型表示近似的数值。在mysql中,使用四个字节表示单精度值,八个字节表示双精度值。
比如我们定义一个类型为*float(10,5)*的字段,实际会存入一个近似值。
结语
本文对mysql数据类型中的numeric进行了说明,可以指导我们在建库建表的时候,针对不同业务字段设计不同的numeric类型。
到此这篇关于mysql数据类型numeric详解的文章就介绍到这了,更多相关mysql数据类型内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论