MySQL数据类型Numeric详解

 更新时间:2025年04月25日 11:10:14   作者:一叶飞舟  
本文对MySQL数据类型中的Numeric进行了说明,可以指导我们在建库建表的时候,针对不同业务字段设计不同的Numeric类型,感兴趣的朋友一起看看吧

前言

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类型取值和存储要求

DECIMALNUMERIC类型可以存储精确的浮点数据,如金额类数据。比如创建一个注册资本字段:regcap decimal(10,2),代表长度为10位,并保留2位小数。

提示:在MySQL中,NUMERIC等同于DECIMAL。

4. Floating-Point类型取值和存储要求

FLOATDOUBLE类型表示近似的数值。在MySQL中,使用四个字节表示单精度值,八个字节表示双精度值。
比如我们定义一个类型为*float(10,5)*的字段,实际会存入一个近似值。

结语

本文对MySQL数据类型中的Numeric进行了说明,可以指导我们在建库建表的时候,针对不同业务字段设计不同的Numeric类型。

到此这篇关于MySQL数据类型Numeric详解的文章就介绍到这了,更多相关mysql数据类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ubuntu 15.04下mysql开放远程3306端口

    ubuntu 15.04下mysql开放远程3306端口

    这篇文章主要为大家详细介绍了ubuntu 15.04开放mysql远程3306端口的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • mysql的limit用法及逻辑分页和物理分页

    mysql的limit用法及逻辑分页和物理分页

    本文主要介绍了mysql的limit用法及逻辑分页和物理分页,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Linux下Mysql5.6 二进制安装过程

    Linux下Mysql5.6 二进制安装过程

    这篇文章主要介绍了Linux下Mysql5.6 二进制安装过程,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • mysql mycat 中间件安装与使用

    mysql mycat 中间件安装与使用

    MyCAT是MySQL中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之。于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显。这篇文章主要是MyCAT的入门部署。
    2017-05-05
  • mysql explain中key_len的含义以及计算方法

    mysql explain中key_len的含义以及计算方法

    通常在优化SQL查询的时候,我们都会使用explain分析SQL执行计划,下面这篇文章主要给大家介绍了关于mysql explain中key_len的含义以及计算方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • MySql escape的使用案例详解

    MySql escape的使用案例详解

    本文通过实际案例给大家介绍MYSQL escape的使用,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-09-09
  • Mysql插入中文变为全问号???的问题 解决方法

    Mysql插入中文变为全问号???的问题 解决方法

    这篇文章介绍了Mysql插入中文变为全问号???的问题 解决方法,有需要的朋友可以参考一下
    2013-09-09
  • MySQL笔记之子查询使用介绍

    MySQL笔记之子查询使用介绍

    子查询是将一个查询语句嵌套在另一个查询语句中,内层查询语句的查询结果,可以为外层查询语句提供查询条件
    2013-05-05
  • mysql使用字符串字段判断是否包含某个字符串的方法

    mysql使用字符串字段判断是否包含某个字符串的方法

    在MySQL中,判断字符串字段是否包含特定子字符串,可使用LIKE操作符、INSTR()函数、LOCATE()函数、POSITION()函数、FIND_IN_SET()函数以及正则表达式REGEXP或RLIKE,每种方法适用于不同的场景和需求,LIKE和INSTR()通常用于简单包含判断
    2024-09-09
  • mysql 8.0.11 安装步骤详解

    mysql 8.0.11 安装步骤详解

    这篇文章主要为大家详细介绍了mysql 8.0.11 安装步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08

最新评论