问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MySQL系列之数据类型(Numeric)

创作时间:
作者:
@小白创作中心

MySQL系列之数据类型(Numeric)

引用
CSDN
1.
https://blog.csdn.net/m0_74823715/article/details/145642868

MySQL中的数值数据类型是数据库存储的基础,正确选择和使用这些数据类型对于优化数据库性能和确保数据完整性至关重要。本文将详细介绍MySQL中各种数值数据类型的特点、取值范围和存储要求,帮助读者在实际开发中做出合理的选择。

前言

在数据库开发中,数据类型的选择直接影响到数据的存储效率和查询性能。MySQL支持多种数值数据类型,主要包括精确的数值数据类型和近似的数值数据类型两大类。本文将详细介绍这些数据类型的特点和使用场景,帮助读者在实际开发中做出合理的选择。

一、数值类型综述

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类型。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号