首页
学习
活动
专区
圈层
工具
发布

mysql 的数值类型

MySQL的数值类型是数据库中用于存储数值数据的数据类型。这些类型根据它们的表示范围和精度分为不同的类别。以下是MySQL中主要的数值类型及其特点:

基础概念

数值类型包括整数类型和浮点数或小数类型。整数类型包括TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT。浮点数类型包括FLOAT和DOUBLE,而小数类型指的是DECIMAL。

类型与优势

  • 整数类型:
    • TINYINT:占用1字节,范围是-128到127(有符号),或0到255(无符号)。
    • SMALLINT:占用2字节,范围是-32768到32767(有符号),或0到65535(无符号)。
    • MEDIUMINT:占用3字节,范围是-8388608到8388607(有符号),或0到16777215(无符号)。
    • INT 或 INTEGER:占用4字节,范围是-2147483648到2147483647(有符号),或0到4294967295(无符号)。
    • BIGINT:占用8字节,范围是-9223372036854775808到9223372036854775807(有符号),或0到18446744073709551615(无符号)。
  • 浮点数类型:
    • FLOAT:占用4字节,提供大约6到7位小数的精度。
    • DOUBLE:占用8字节,提供大约15位小数的精度。
  • 小数类型:
    • DECIMAL:用于存储精确的小数值,精度和范围可以通过参数指定。

应用场景

  • 整数类型通常用于存储不需要小数部分的数值,如年龄、ID号等。
  • 浮点数类型适用于需要存储有小数的数值,但可能会有精度损失,如体重、温度等。
  • 小数类型适用于需要高精度计算的金融数据,如货币金额、税率等。

常见问题及解决方法

  1. 精度问题:使用浮点数类型时可能会遇到精度损失的问题。解决方法是使用DECIMAL类型,并指定合适的精度和小数位数。
  2. 存储空间问题:不同的数值类型占用的存储空间不同。在设计数据库时,应根据实际需求选择合适的数据类型以节省存储空间。
  3. 性能问题:整数类型的比较和计算通常比浮点数类型更快。如果性能是关键考虑因素,应优先考虑使用整数类型。

示例代码

代码语言:txt
复制
CREATE TABLE example (
    id INT AUTO_INCREMENT PRIMARY KEY,
    age TINYINT UNSIGNED,
    salary DECIMAL(10, 2)
);

在这个示例中,age字段使用TINYINT UNSIGNED类型来存储年龄,salary字段使用DECIMAL类型来存储薪水,确保了薪水的精确性。

参考链接

了解这些基础概念和类型特点有助于在设计数据库时做出更合适的选择,以满足不同的业务需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL中数字类型、数值类型、时间类型

本文链接:https://blog.csdn.net/weixin_38004638/article/details/96135519 一、数字类型 类型 范围 说明 Char(...enum(1,0) habby set(‘玩电玩’,'睡觉’,'看电影’,'听音乐’) Set 集合最大数目为64 辨別Null与Not Null :Null为允许储存空值(Null) 二、数值...类型 范围 说明 例如 TinyInt[M] [UNSIGNED] -128~127 UNSIGNED : 0~255 num tinyint unsigned SmallInt...2是能存储的最小显示长度,如果插入的数据不够2位时,需要在数据前面用0补满2位。比如定义一个age字段,其数据类型为int(4),那用select查询出来的结果是“0002”。...三、日期时间 类型 范围 说明 Date 日期(yyyy-mm-dd) Time 时间(hh:mm:ss) DateTime 日期与时间組合(yyyy-mm-dd hh:mm:

4.4K20
  • 【重学 MySQL】三十、数值类型的函数

    【重学 MySQL】三十、数值类型的函数 基本函数 MySQL提供了一系列基本的数值函数,用于处理数学运算和数值转换。...MySQL提供了以下两个函数: 函数 用法 RADIANS(x) 将角度x转换为弧度。 DEGREES(x) 将弧度x转换为角度。...三角函数 MySQL支持多种三角函数,用于计算角度(以弧度为单位)的正弦、余弦、正切等。 函数 用法 SIN(x) 返回x(弧度)的正弦值。...COT(x) 返回x(弧度)的余切值,即1/TAN(x)。 指数与对数 MySQL提供了用于计算指数和对数的函数。 函数 用法 POW(x,y),POWER(X,Y) 返回x的y次方。...LOG2(X) 返回以2为底X的对数。如果X <= 0,则返回NULL。 进制间的转换 MySQL支持将数字从一种进制转换为另一种进制。 函数 用法 BIN(x) 返回x的二进制表示,作为字符串。

    86510

    MySQL 数值类型溢出处理

    MySQL 数值类型溢出处理 当 MySQL 在某个数值列上存储超出列数据类型允许范围的值时,结果取决于当时生效的 SQL 模式 如果启用了严格的 SQL 模式,则 MySQL 会根据 SQL 标准拒绝带有错误的超出范围的值...,并且插入失败 如果没有启用任何限制模式,那么 MySQL 会将值裁剪到列数据类型范围的上下限值并存储 1....当超出范围的值分配给整数列时,MySQL 会存储表示列数据类型范围的相应端点的值 2....数值表达式求值过程中的溢出会导致错误,例如,因为最大的有符号 BIGINT 值是 9223372036854775807,因此以下表达式会产生错误 mysql> SELECT 9223372036854775807... UNSIGNED 整数列,则结果将裁剪为列类型的最大值,如果启用了 NO_UNSIGNED_SUBTRACTION 则裁剪为 0。

    2.4K40

    MySQL 数值类型溢出处理

    MySQL 数值类型溢出处理 当 MySQL 在某个数值列上存储超出列数据类型允许范围的值时,结果取决于当时生效的 SQL 模式 如果启用了严格的 SQL 模式,则 MySQL 会根据 SQL 标准拒绝带有错误的超出范围的值...,并且插入失败 如果没有启用任何限制模式,那么 MySQL 会将值裁剪到列数据类型范围的上下限值并存储 当超出范围的值分配给整数列时,MySQL 会存储表示列数据类型范围的相应端点的值 当为浮点或定点列分配的值超出指定...(或默认)精度和比例所隐含的范围时,MySQL 会存储表示该范围的相应端点的值 这个,应该很好理解吧?...数值表达式求值过程中的溢出会导致错误,例如,因为最大的有符号 BIGINT 值是 9223372036854775807,因此以下表达式会产生错误 mysql> SELECT 9223372036854775807...UNSIGNED 整数列,则结果将裁剪为列类型的最大值,如果启用了 NO_UNSIGNED_SUBTRACTION 则裁剪为 0。

    3K20

    MySQL数据类型 -- 数值型

    https://blog.csdn.net/robinson_0612/article/details/82823622 在MySQL关系型数据库中,MySQL支持的数据类型非常丰富。...它主要分为3大类,即:数值型,日期时间性,字符型。而实际上这三类数据类型可以进一步的细分扩展,可以根据业务需要选择最适合的一种。本文主要介绍数值类型,并演示其用法。...一、数值型 MySQL支持所有标准SQL的所有数值类型。在MySQL中,主要分为以下2大类。一类是整数类型,一类是浮点数类型,如下图所示。 ?...整数类型   上图中列出了整数类型的使用以及其占用字节数,括号后面的数字表示最大显示宽度,与存储空间无关。...整数类型   上图中列出了浮点数类型的使用方法,m表示整数位长度,n表示小数点后的位数。

    1.8K30

    Python数值类型

    数值类型 python的数值类型包括常规的类型:整数(没有小数部分的数字)、浮点数(通俗地说,就是有小数部分的数字)以及其它数值类型(复数、分数、有理数、无理数、集合、进制数等)。...开头(数值零和大、小写的字母o),其后都是0-7之间的数值时,默认识别为8进制整数 当一个整数以0x或0X开始,其后都是[0-9a-fA-F]之间的字符时,默认识别为十六进制 python中的数值类型是不可变对象...当数值部分有小数时,会自动转换为浮点数类型进行运算,而且会自动忽略参与运算的小数尾部的0。...可以连接字符串,例如"abc" + "def"得到abcdef *可以重复字符串次数,例如"a"*3得到"aaa","ab"*3得到"ababab" 其它数学运算方法 除了上面的基础算术运算符,还支持很多数值类型的运算符...>>> int(3.6) 3 >>> int(-3.6) -3 数值类型的转换 int()可以将字符串或浮点数转换成整数,也可以用于进制数转换 float()可以将字符串或整数转换成浮点数 实际上它们表示根据给定参数在内存中构造一个整数

    3.4K30

    Python——数值类型

    数值类型 python的数值类型包括整数,浮点数,复数,集合,小数和分数,布尔值。它们都是python中的数值类型。如果是有过其他语言编写经验的人,一定很好奇,浮点数和小数的区别是什么?...复数 python内部集成了复数类型,这对于坐标或者复变函数与积分变换计算而言可能提供了大大的方便,但是通常处理数值计算的时候,我们还是采用numpy库。...该函数的用法如下: int(x, base=10) x是数值字符串,base是该数值字符串的进制,base拥有一个默认值10....在python中几乎是不会用到位运算的。 集合 python中的集合也是数值类型,集合提供了朴素集合论中集合的基本功能。满足确定性,互异性,无序性。...>>> True + 1 2 其他数值类型 小数和分数类型都需要导入模块来创建,在这里不做过多的介绍。它们相比于浮点数而言,是精确的。

    1.8K30

    SQL数值类型的函数

    在SQL中,数值类型的函数主要用于对数字数据进行操作和计算。这些函数提供了丰富的数学计算和统计分析功能,可用于查询和汇总数据。下面将介绍一些常用的数值类型的函数,以及它们的用法和示例。...ABS函数ABS函数用于计算一个数的绝对值。语法如下:ABS(n)其中n为一个数值表达式。如果n为正数,则ABS(n)返回n的值;如果n为负数,则ABS(n)返回-n的值。...ROUND函数ROUND函数用于将一个数四舍五入到指定的位数。语法如下:ROUND(n, d)其中n为一个数值表达式,d为一个整数,表示要保留的小数位数。...MAX函数和MIN函数MAX函数和MIN函数用于返回一组数值表达式的最大值和最小值。语法如下:MAX(n1, n2, ...)MIN(n1, n2, ...)其中n1, n2, ...为数值表达式。...语法如下:TRUNCATE(n, d)其中n为一个数值表达式,d为一个整数,表示要保留的小数位数。

    2.1K20

    Python编程 数值类型 布尔类型

    数值类型使用bool  字符串类型使用bool 列表使用bool 归纳: 3.布尔类型运算 二.空值 1.空值介绍(掌握) ---- 前言 本章将会讲解Python编程数值类型的布尔类型,和空值 一...那其实 对于对与错、0与1,都是传统意义上的布尔 类型。 但在Python语言中,布尔类型只有两个值, True 与 False。 注意:首字母必须大写,不能有其它的花式变型。  ...3 in [1,2,3]) #True print(3 == 9/3) # 3 == 3.0 True print(3 is 3.0) #False #布尔值应用很广泛  数值类型使用...bool #数值 : 0 0.0 的bool值为False,其余的全为True print(bool(1)) #True print(bool(-1)) #True print(bool(0)...print(bool("0")) #True 列表使用bool #列表 print(bool([])) #False print(bool([1,2,3])) #True 归纳:  数值类型

    2.1K30

    Go语言中的数值类型

    与其它语言一样,Go语言支持整型和浮点型数值。不同的是,Go语言是强类型语言,数值运算需要在同一种类型的数值之间进行。...Go语言内置的数值类型都支持下面所列的运算: 语法 描述 +x x -x x的负值 x++ x加上常量1 x– x减去常量1 x + y x加上y x - y x减去y x * y x乘以y x / y...x除以y x += y x = x + y x -= y x = x - y x *=y x = x * y x /=y x = x / y 类型转换 数值类型的变量在定义时就需要指定其类型,如果没有指定...常量可以与其它类型兼容,不用转换也可以进行运算。不同类型的数值运算需要先使用下面的方法进行类型转换。注意:类型转换可能会导致精度丢失。...M 为12或者01之间的小数值。E 为阶码,用于对浮点数加权。

    66710

    ​go语言数值类型及布尔类型

    但是在基本类型声明时,会直接对其做初实化,也就是说,对于基本类型,在使用var声明时,声明和初始化是一起做的。...声明的语法 直接声明式 var 变量名 类型 类型推断式 var 变量名 = 值 简短声明(该种方式只能用于局部变量) 变量名 := 值 变量初始化 变量初始化是刚在上文说的开辟内存空间,符初值,整型类型默认的初值为...,需要确定两点 存储的编码方式 存储的长度 对于整型数据,在计算机内部是以补码的方式,存储长度,go语言的提供的多种长度不同的整型数据类型。...复数型 go语言提供了复数数据类型complex64和complex128,这个在平时的代码中很少用的到,在此不做展开 布尔型 在一些编程语言中,没有bool类型使用0或1来标示go语言中的bool类型占一个存储单元...数值计算的基本运算符有加,减,乘,除,模运算,在go语言中分别对应,+,-,*,/,% 在计算机内部是怎么完成运算的?该篇幅将单独作为一个专题做后文中详细展开。

    1.4K30

    Mysql数据库学习(二):数据类型(数值类型 日期和时间类型 字符串类型)

    数据类型 数值类型 日期和时间类型 字符串类型 一、数值类型 整数 tinyint[M] [unsigned] [zerofill]    // [ ] 表示可选,这里的M表示显示宽度,并不是取值范围...decimal存储方式,参考:http://dev.mysql.com/doc/refman/5.1/zh/precision-math.html numeric是decimal的别名 create...这说明它们没有字符集,并且排序和比较基于列值字节的数值。 字符串存储需求 VARCHAR、BLOB和TEXT类是变长类型。...每个类型的存储需求取决于列值的实际长度(用前面的表中的L表示),而不是该类型的最大可能的大小。例如,VARCHAR(10)列可以容纳最大长度为10的字符串。...对于CHAR、VARCHAR和TEXT类型,前面的表中的值L和M应解释为字符数目,并且列定义中的这些类型的长度表示字符数目。例如,要想保存一个TINYTEXT值需要L字符+ 1个字节。

    3.1K00

    Python数据类型 -数值类型(整数,

    Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。...如: import sys print("num01占用的空间",sys.getsizeof(num01)) print("num02占用的空间",sys.getsizeof(num02)) ?...,正负数有差别 3)floor 返回数字的下舍整数 print(math.floor(num01)) print(math.floor(-12.1111111)) 4)modf 返回X的整数部分与小数部分...,两部分的数值符合与X相同,整数部分以浮点型表示 print(math.modf(num01)) print(math.modf(-12.12345678)) 返回,但是数值不是很准确: (0.3456789123456794..., 12.0) (-0.12345677999999971, -12.0) 三、布尔类型:False True 可以参与数学运算 is_small=True#存储的是1 is_first=False#存储的是

    1.8K10

    go语言数值类型及布尔类型

    但是在基本类型声明时,会直接对其做初始化,也就是说,对于基本类型,在使用var声明时,声明和初始化是一起做的。...声明的语法 直接声明式 var 变量名 类型 类型推断式 var 变量名 = 值 简短声明(该种方式只能用于局部变量) 变量名 := 值 变量初始化变量初始化是刚在上文说的开辟内存空间,赋初值,整型类型默认的初值为...复数型 go语言提供了复数数据类型complex64和complex128,这个在平时的代码中很少用的到,在此不做展开 布尔型 在一些编程语言中,没有bool类型使用0或1来标示go语言中的bool类型占一个存储单元...数值计算的基本运算符有加,减,乘,除,模运算,在go语言中分别对应,+,-,*,/,% 在计算机内部是怎么完成运算的?该篇幅将单独作为一个专题做后文中详细展开。...总结 以上介绍了go语言的常量及变量的声明,及基本类型的内存存储方式做了总结和实验

    1.2K40

    【MySQL】——数值函数的学习

    函数 功能 ceil(x) 向上取整 floor(x) 向下取整 mod(x,y) 返回x/y的模 rand() 返回0~1内的随机数 round(x,y) 求参数x的四舍五入的值,保留y位小数 向上取整函数...1.1); 向下取整函数 -- floor select floor(1.9); 求模函数 -- mod select mod(6,4); 求模运算就是看余数是几 生成0-1的随机数函数...-- rand select rand(); 生成四舍五入值的函数 -- round select round(2.344,2); Exercises 通过数据库的西数,生成一个六位数的随机验证码...以后再取整数位就会变成四位数而不是我们要的六位数。...解决方案:利用之前学的字符串填充函数,保证他是一个六位数。 修改以后的代码: select lpad(round(rand() * 1000000,0) , 6 , '0');

    74310
    领券