首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql中的数值数据类型

MySQL中的数值数据类型主要包括整数类型和浮点数类型。这些数据类型用于存储数字值,并且具有不同的范围和精度。

整数类型

整数类型包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等。它们的主要区别在于存储空间和数值范围。

  • 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和DOUBLE,以及它们的变种DECIMAL。这些类型用于存储带有小数点的数值。

  • FLOAT:单精度浮点数,占用4个字节,精度大约为7位有效数字。
  • DOUBLE:双精度浮点数,占用8个字节,精度大约为15位有效数字。
  • DECIMAL:固定精度的小数类型,可以指定精度和小数位数。它通常用于需要高精度计算的场景,如金融计算。

浮点数类型适用于存储需要小数部分的数值,但需要注意浮点数的精度问题。

应用场景

  • 整数类型适用于存储整数或不需要小数部分的数值,如用户ID、订单数量等。
  • 浮点数类型适用于存储带有小数点的数值,如价格、体重等。但需要注意,在进行金融或货币计算时,建议使用DECIMAL类型以确保精度。

遇到的问题及解决方法

  1. 数据溢出:当存储的数值超出了数据类型的范围时,会发生数据溢出。解决方法是选择合适的数据类型,确保数值在允许范围内。
  2. 精度丢失:在使用浮点数类型进行计算时,可能会出现精度丢失的情况。解决方法是使用DECIMAL类型进行高精度计算,或者采用其他算法来避免精度问题。
  3. 存储空间优化:根据实际需求选择合适的数据类型,可以节省存储空间并提高查询效率。例如,对于较小的整数,可以使用TINYINT或SMALLINT代替INT。

示例代码

以下是一个简单的MySQL表结构示例,展示了如何使用不同的数值数据类型:

代码语言:txt
复制
CREATE TABLE example_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    age TINYINT,
    price FLOAT,
    balance DECIMAL(10, 2)
);

在这个示例中,age字段使用TINYINT类型存储年龄,price字段使用FLOAT类型存储价格,balance字段使用DECIMAL类型存储余额,精度为10位,其中2位是小数。

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

相关·内容

MySQL数据类型 -- 数值

https://blog.csdn.net/robinson_0612/article/details/82823622 在MySQL关系型数据库MySQL支持数据类型非常丰富。...它主要分为3大类,即:数值型,日期时间性,字符型。而实际上这三类数据类型可以进一步细分扩展,可以根据业务需要选择最适合一种。本文主要介绍数值类型,并演示其用法。...一、数值MySQL支持所有标准SQL所有数值类型。在MySQL,主要分为以下2大类。一类是整数类型,一类是浮点数类型,如下图所示。 ?...column 'id1' at row 1 -- 下面为表新增一个列,salary,其数据类型为decimal mysql> alter table t_num add column salary...----+ | Leshami | | http://blog.csdn.net/leshami | +------------------------------+ -- 插入以一个decimal数据类型

1.1K30

MySQL数据类型_js数据类型

MySQL数据类型精讲 1.MySQL数据类型 常见数据类型属性,如下: 2.整数类型 2.1 类型介绍 整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT...从MySQL 8.0.17开始,整数数据类型不推荐使用显示宽度属性。整型数据类型可以在定义表结构时指定所需要显示宽度,如果不指定,则系统为每一种类型指定默认宽度值。...“由于 DECIMAL 数据类型精准性,在我们项目中,除了极少数(比如商品编号)用到整数类型外,其他数值都用是 DECIMAL,原因就是这个项目所处零售行业,要求精准,一分钱也不能差。...以 YY-MM-DD 格式或者 YYMMDD 格式表示字符串日期,此格式,年份为两位数值或字符串满足YEAR类型格式条件为:当年份取值为00到69时,会被转化为2000到2069;当年份取值为70...在MySQL 5.7,就已经支持JSON数据类型

6.7K20
  • MySQL数据类型

    MySQL定义数据字段类型对数据库优化是非常重要,它支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 ? 日期和时间类型 ? 字符串类型 ?...CHAR 和 VARCHAR 类型类似,但它们保存和检索方式不同,它们最大长度和是否尾部空格被保留等方面也不同,在存储或检索过程不进行大小写转换。...另外,CHAR(n) 和 VARCHAR(n) 括号 n 代表字符个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。...BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同是它们包含二进制字符串而不要非二进制字符串,也就是说,它们包含字节字符串而不是字符字符串,这说明它们没有字符集,并且排序和比较基于列值字节数值值...TEXT 用于存文本数据,对应BLOB4种类型,4种类型存储最大长度不同,可根据实际情况选择。

    2.8K20

    java(3)——数据类型数值整数类型

    java数据类型有两大类:基本数据类型和引用数据类型 基本数据类型分为数值型(数值型又分为整数类型(byte、short、int、long)和浮点类型(float、double))、字符型(char...)和布尔型(boolean) 引用数据类型分为类(class)、接口(interface)和数组 整数类型 名称 占用存储空间 byte 1字节 short 2字节 int 4字节 long 8字节...ps:一字节=8位 不同整数类型数表也不一样,byte类型数字范围是-128-127 代码实现: public class VarTest{ public static void main...可见定义不同数字可以用不同数值类型,但也要注意数表范围合理定义 ps:在定义long数值类型时,如果超过了int类型范围,要在末尾加上L 如何在程序里分别输出不同进制数字 默认情况下赋值时候默认为...10进制,不同进制前面要加上不同符号 进制 表示方法 2 前面加0b 8 前面加0 10 默认输出,不用加任何符号 16 前面加0x(X) 代码实现: public class VarTest{

    70110

    MySQL】拿来即用 —— MySQL数据类型

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习路上摸爬滚打,记录学习过程~ 个人主页:.29.博客 学习社区:进去逛一逛~ MySQL数据类型 ⚪...熟悉SQL 一、MySQL数据类型总结 二、常用类型详解 ⚪熟悉SQL 一、MySQL数据类型总结 类型 类型举例 位类型 BIT 集合类型 SET 枚举类型 ENUM 定点数类型 DECIMAL...MEDIUMTEXT、LONGTEXT 二进制字符串类型 BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB JSON类型 JSON对象、JSON数组 空间数据类型...集合:MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION ---- 二、常用类型详解 类型 描述 INT 从-231 到 231-1整型数据...DATE 日期型数据,格式’YYYY-MM-DD’ BLOB 二进制形式长文本数据,最大可达4G TEXT 长文本数据,最大可达4G

    16520

    javascript(二):数据类型&数值

    第一部分:数据类型 javascript数据类型通常来说是6种(ES6新增第七种Symbol类型) number:数值 string:字符串 boolean:布尔类型,true或false undefined...(谷歌开发javascript语言替代品Dart语言,只有null,没有undefined)。 在if语句中,它们都会转为false;在==相等运算符,两者相等!...2.4数值进制: 十进制:正常数值; 十六进制:前缀0x或0X; 八进制:前缀0o或0O;或者只有前缀0,但只用到0-7八个阿拉伯数字值(不推荐,ES5严格模式和ES6均废除了这种写法) 二进制:前缀...同时它与任何数运算,得到都是NaN。 ? isNaN()方法用来判断一个值是否为NaN! isNaN()只对数值有效;如果传入其它值,会先被转为数值。...字符串符合科学计数法,会进行相应转换;碰见字符串不能转换为浮点数字符时,停止转换,返回已转换好部分; ? 参考:阮一峰javascript标准参考教程

    1.5K50

    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');

    10710

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

    enum(1,0) habby set(‘玩电玩’,'睡觉’,'看电影’,'听音乐’) Set 集合最大数目为64 辨別Null与Not Null :Null为允许储存空值(Null) 二、数值...Float 4 bytes,Double 8 bytes Double [(M,D)] -1.79E+308~1.79E+308( 约 ) Decimal [(M,D)] 2.1 int(2)...2是能存储最小显示长度,如果插入数据不够2位时,需要在数据前面用0补满2位。比如定义一个age字段,其数据类型为int(4),那用select查询出来结果是“0002”。...但是我们发现,在实际查出来结果,并没有补全效果,这是因为系统默认不显示,如果想显示出来,增加zerofill约束即可。...tinyint使用范围是0到255整型数据,存储大小为1字节。int使用范围是0到4294967295,存储大小为4个字节。tinyint所占内存小,作用范围也小。

    3.1K20

    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.3K10

    MySQL 系列教程之(四)MySQL 数据类型

    一、MySQL数据类型 数据类型是定义列可以存储什么类型数据以及该数据实际怎样存储基本规则 数据类型限制存储在数据列列数据。...例如,数值数据类型列只能接受数值类型数据 在设计表时,应该特别重视所用数据类型。使用错误数据类型可能会严重地影响应用程序功能和性能。...回答:因为性能,MySQL处理定长列远比处理变长列快得多。 [在这里插入图片描述] --- 2、数值类型 数值数据类型存储数值MySQL支持多种数值数据类型,每种存储 数值具有不同取值范围。...支持取值范围越大,所需存储空 间越多 与字符串不一样,数值不应该括在引号内 [在这里插入图片描述] decimal(5, 2) 表示数值总共5位, 小数占2位 tinyint 1字节(8位) MySQL...没有专门存储货币数据类型,一般情况下使用DECIMAL(8, 2) 有符号或无符号 所有数值数据类型(除BIT和BOOLEAN外)都可以有符号或无符号 有符号数值列可以存储正或负数值 无符号数值列只能存储正数

    1.6K83

    Mysql8.0Json数据类型

    场景 在某张表存在一个字段数据类型是一个Json,这个字段保存数据格式是一个JsonArray,其中每个JsonObject都有一个属性为UUID,现在我们有以下两个需求 1、 根据UUID查询出对应...JsonObject 2、 根据UUID查询出对应JsonObject并且将其删除,并保留该JsonArray其他数据 条件只有一个UUID,而没有该JsonArray所在数据主键索引...通过json_extract函数可以获取到JsonArray第一个JsonObject,然后通过json_extract函数获取到该JsonObjectuuid属性,然后与传入uuid进行比较...JsonObject转换成JsonArray,最后通过update语句将原来JsonArray替换成过滤后JsonArray 2323-07-22测试环境产生问题 在测试环境时候对下边这个需求进行测试时候产生了一些小问题...当我们machine_wording字段JsonArrayJsonObject为一个时候会出现删除不掉问题 产生问题原因是对应sql是先找到UUID不等于传入时候他就会拿到所有不等于然后更新到这个字段

    31230

    数值分析笔记(3)——数值计算原则

    数值计算原则 避免两个相近数相减 如上图所示,因为 x 和 y 非常相近,所以 x-y << 0 ,而 x - y 又位于分母,所以会导致误差变得非常大。...例子: 这是因为这里变量使用了8位来储存,因为在转换到同一个量级时候,两个小数都要被转换成9位,导致最后一位溢出,最终变成 0.0 \times 10^8 ,从而导致结果出错,小数被“吃掉”。...这个问题是由计算机存储数据方式造成。 解决方法: 绝对值太小数不宜作除数 如果商特别大,下面继续加减乘除运算时候可能会出现“大数吃掉小数”。...例如,如果这里y恰好就是那个很小数,那么就可能导致商绝对误差很大。 注意简化计算程序,减少计算次数 每一步计算都可能出现舍入误差,所以步骤太多的话可能会导致误差过大。...可以转换成下图公式: 选用数值稳定性好算法 例题:求积分 可以看到第一步就出现了舍入误差,接着积累下去:

    4.5K40
    领券