导览
- 前言
- 一、数值类型综述
- 二、数值类型详解
- 1. NUMERIC
- 1.1 UNSIGNED或SIGNED
- 1.2 数据类型划分
- 2. Integer类型取值和存储要求
- 3. Fixed-Point类型取值和存储要求
- 4. Floating-Point类型取值和存储要求
- 结语
- 精彩回放
前言
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系列之远程管理(安全)
MySQL系列之身份鉴别(安全)
MySQL系列之数据授权(安全)
MySQL系列之如何在Linux只安装客户端
MySQL系列之如何正确的使用窗口函数(基于8.0版本)
MySQL系列之数据导入导出
MySQL系列之索引入门(上)
MySQL系列之索引入门(下)