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

mysql数字类型长度

MySQL中的数字类型长度是指数字类型字段可以存储的最大位数。MySQL提供了多种数字类型,包括整数类型(如TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT)和浮点数类型(如FLOAT, DOUBLE)。每种类型都有其默认的精度和范围,但也可以通过指定长度来进一步限制。

基础概念

  • 整数类型:包括TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT,它们分别对应不同的存储空间和数值范围。
  • 浮点数类型:包括FLOAT和DOUBLE,它们用于存储有小数点的数值,但可能会有精度损失。
  • 定点数类型:包括DECIMAL,它可以精确地存储小数,适用于需要精确计算的金融数据等场景。

相关优势

  • 存储效率:整数类型通常比字符串类型使用更少的存储空间。
  • 查询速度:数字类型的比较和计算通常比字符串类型更快。
  • 数据完整性:通过指定长度,可以限制用户输入的数据范围,保证数据的合理性。

类型

  • TINYINT:1字节,范围-128到127或0到255(无符号)。
  • SMALLINT:2字节,范围-32768到32767或0到65535(无符号)。
  • MEDIUMINT:3字节,范围-8388608到8388607或0到16777215(无符号)。
  • INT:4字节,范围-2147483648到2147483647或0到4294967295(无符号)。
  • BIGINT:8字节,范围-9223372036854775808到9223372036854775807或0到18446744073709551615(无符号)。
  • FLOAT:4字节,大约±3.40282347E+38F(有效位数为6-7位)。
  • DOUBLE:8字节,大约±1.79769313486231570E+308(有效位数为15位)。
  • DECIMAL:根据指定的精度和小数位数决定存储空间。

应用场景

  • 整数类型:适用于存储年龄、ID号、数量等不需要小数点的数值。
  • 浮点数类型:适用于科学计算、工程计算等需要存储小数的场景。
  • 定点数类型:适用于金融计算、货币转换等需要精确小数计算的场景。

遇到的问题及解决方法

问题:为什么我设置的数字类型长度没有生效?

原因:在MySQL中,对于整数类型,长度属性实际上是用来指定显示宽度的,而不是存储大小或值的范围。对于FLOAT和DOUBLE,长度属性是总位数(包括小数点两边的数字)。对于DECIMAL,长度属性是指整个数字的总位数。

解决方法

  • 如果你想限制整数类型的显示宽度,可以使用宽度属性,但这不会限制值的范围。
  • 对于FLOAT和DOUBLE,如果你需要指定精度和小数位数,应该使用DECIMAL类型,并指定精度和小数位数。
  • 示例代码:
  • 示例代码:
  • 在这个例子中,id字段的显示宽度被设置为11,但它的存储大小和值的范围不受这个宽度的影响。price字段是一个DECIMAL类型,总共有10位数字,其中2位是小数。

参考链接

请注意,以上信息可能会随着MySQL版本的更新而有所变化,建议查阅最新的官方文档以获取最准确的信息。

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

相关·内容

详解 mysql int 类型的长度值问题

秉着好奇心, 打开了 google ~ 引入大神的解答. mysql 在建表的时候 int 类型后的长度代表什么? 是该列允许存储值的最大宽度吗?...所以我在网上查阅了一些资料, 也仔细的看了 mysql 手册关于 int data type 的说法. 以下是每个整数类型的存储和范围 (来自 mysql 手册) ?...每个整数类型的存储和范围.png 表格一共有四列分别表式: 字段类型, 占用字节数, 允许存储的最小值, 允许存储的最大值....mysql 我们看到现在我的 number 字段, 长度 (M)=5, 属性 =UNSIGNED ZEROFILL(无符号, 用 0 来填充位数), 设置这个属性后我往表时插入数据, 系统会自动把 number...mysql 手册上还有这么一句话 "当 mysql 为某些复杂的联结 (join) 生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度".

5K20

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

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

4.3K20
  • MySQL数字类型学习笔记

    本文链接:https://blog.csdn.net/u014427391/article/details/102644742 数字类型 最近在看《MySQL技术内幕:SQL编程》并做了笔记,所以本博客是一篇笔记类型博客...,分享出来方便自己复习,也可以帮助他人 整型 类型 占用空间 最小值(SIGNED) 最大值(SIGNED) 最小值(UNSIGNED) 最大值(UNSIGNED) TINYINT 1 -128 127...位类型,关键字是bit,位类型用于存储位字段的值,BIT(M),M表示允许存储位数的值,M的范围为1到64,占用的空间为(M+7)/8字节 注意:如果分配的值长度小于M位,就在数值左边用0填充...,可以用HEX函数,查询出来是数字8(16进制) SELECT HEX(a) FROM t; 浮点型(非精确类型) MySQL支持两种浮点类型:单精度的FLOAT类型和双精度的DOUBLE类型 高精度类型...DECIMAL和NUMERIC是MySQL进度比较高的类型,语法都是DECIMAL(M,N)、NUMERIC(M,N),M表示精度,也就是整个数值的位数,,两种类型的最大位数M都为65,N表示标度,

    75920

    MySQL文档阅读(一)-数字类型

    这个系列参考自MySQL官方文档:MySQL5.7官方文档 MySQL支持很多系列的SQL数据类型:数字类型(numeric types)、日期和时间类型(date and time types)...数据类型描述遵循如下约定: M表示整数类型最大的显示宽度值;对于浮点数和固定长度数据类型,M表示数字在MySQL中的总的存储长度;对于字符串类型,M表示字符串的最大长度。...数据类型概览 数字类型 整数(INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT) 在创建表的时候,让我们填写的那个数字就是M,表示可显示的最大宽度,而数字的实际范围则由数据类型决定...MySQL支持的整数类型 Fixed-Point类型(DECIMAL、NUMERIC) DECIMAL和NUMERIC类型代表精确数字类型。...数字类型属性 MySQL支持通过在数据类型后面加括号的方式限制整数类型的显示宽度。例如,INT(4)定义了一个整数类型,但是显示宽度为4。如果应用中的数值小于指定的宽度,则数字的左边用空格填充。

    2K10

    理解 MySQL 中的数字类型

    存储字符串时指定的类型 VARCHAR(50) 中可接收一个数字作为长度,其实除了字符串类型,数字类型也是可指定该参数的,比如 INT(10),BIGINT(20)。...展示宽度这个参数具有迷惑性,它不像 CHAR(M) 中有实际意义表示能够存储的字符串长度,在数字类型中,它指数字展示时需要的宽度,是 MySQL 格式化时使用的。...如果指定了 ZEROFILL,MySQL 在返回该数字时,对于实际位数小于展示宽度的数字,将自动在左边补零。比如列的类型为 INT(5),实际存储了数字 5,返回时会得到 00005。...定点型数字存储精确的数字,用于准确性要求高的场合,比如涉及金钱。底层实现上,MySQL 使用二进制形式存储该类型的值。...进行数字计算时如果有溢出,也会抛错,比如对于 BIGINT 其最大值为 9223372036854775807,因为 MySQL 中默认对数字类型是有符号类型,如下操作会抛错, mysql> SELECT

    3.1K20

    一文搞懂MySQL表字段类型长度的含义

    不知道大家第一眼看标题的时候有没有理解,什么是“字段类型长度”,这里我来解释下,就比如我们在MySQL建表的时候,比如下面这个建表语句:CREATE TABLE `user` ( `id` int(10...+数字就是该字段的类型长度,比如int(10)就是该字段是int类型长度为10,这下大家应该能理解什么是MySQL表字段类型长度了吧(其实在后续的讲解中会发现这个并不是长度,而是宽度)那么重点问题来了,...每一种类型后面括号里的数字都有什么含义呢,下面我们来剖析下:首先MySQL表的字段都支持哪些类型?...(3)提供了相关操作JSON类型数据的函数1.3 数据类型说明MySQL的数据类型长度是固定的,而不是由建表时指定的,unsigned表示无符号类型CREATE TABLE `table01` ( `...;对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也不是为了限制那些超过该列指定宽度的值的可被显示的数字位数,因此我们得出一下结论:对于数值类型,可以不指定宽度,使用默认长度即可

    3.2K11

    【MySQL笔记】数字类型、时间和日期类型、字符串类型

    总结 ---- 前言 使用MySQL数据库存储数据时,不同的数据类型决定了MySQL存储数据方式的不同。...MySQL数据库提供了多种数据类型,其中包括数字类型、时间和日期类型、字符串类型。...本期我们一起来学习MySQL的数据类型吧~ ---- 数字类型 在数据库中,经常需要存储一些数字,适合用数字类型来保存。数字类型包括整数类型、浮点数类型、定点数类型、BIT(位)类型。...字符串类型 数据类型 类型说明 CHAR 固定长度字符串 VARCHAR 可变长度字符串 TEXT 大文本数据 ENUM 枚举类型 SET 字符串类型 BINARY 固定长度的二进制数据 VARBINARY...BINARY类型的长度是固定的,如果数据的长度不足最大长度,将在数据的后面用“\0”补齐,最终达到指定长度。

    5.8K20

    字节|字符、字段类型长度

    常用的字段数据类型: int:整型 double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99; char:固定长度字符串类型; char(10) 如果不足...10位则会自动补足10位:'abc ' varchar:可变长度字符串类型;varchar(10) 如果不足10位不会补足:'abc',性能不如char高 text:字符串类型;适用于大文本内容。...datetime:日期时间类型 yyyy-MM-dd hh:mm:ssmysql字段每个类型长度大小与建表的类型长度:在创建数据库表时,例如create table user(id int(4) primary...key ,name varchar(20),pwd varchar(20) );括号里的数字叫数据的宽度,我们不能一概而论,因为不同的数据类型对宽度的处理也不一样:1、整数类型,这里显示的宽度和数据类型的取值范围是没有任何关系的...,显示宽度只是指明Mysql最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,数值依然可以插入,而且能够显示出来。

    3.1K60

    MySQL字符串类型和数字类型索引的效率

    From: mysql分别用数字INT和中文varchar做索引查询效率上差多少 性能相当 mysql中区别性能的是采用哪种索引方式,而不是索引的数据类型。...s4查询]10000次, 平均耗时0.3094ms 执行[i4查询]10000次, 平均耗时0.25ms 结论: 无索引:全表扫描不会因为数据较小就变快,而是整体速度相同,int/bigint作为原生类型稍快...在实际开发中,许多开发者经常使用char(1)、char(4)这样的字符串表示类型枚举,这种做法在我看来属于最佳方案,因为这种做法在存储空间、运算性能、可读性、可维护性、可扩展性方面,远胜于int、enum...这种数据类型。...但是如果你在创建索引的时候定义其类型为 Hash,MySql 并不会报错,而且你通过 SHOW CREATE TABLE 查看该索引也是 Hash,只不过该索引实际上还是 B-Tree。

    5.2K20

    Mysql中数字类型括号后面的含义

    Mysql中数字类型括号后面的含义 作者:matrix 被围观: 304 次 发布时间:2024-11-30 分类:mysql | 无评论 » 设计数据库字段时很少在意这个括号数字的含义,都是大概知道不影响数据存储所以没在意...mysql中,INT(5) 和 INT(11)这里的数字(5、11)实际上并不限制数值的存储范围或内存使用,而是显示宽度。...***************** id: 2 type: 00008 ******************** 3. row ********************* int(10)同理,其他数字类型亦是...所以说括号里的数字其实没有任何影响,很多场景实际上不会用到。 可能也是考虑到这点,目前mysql8+的版本如果建表时字段设置了显示宽度,会有Warning。...所以不管mysql版本号,新建数字类型字段都不用设置显示宽度,除非你是需要ZEROFILL。

    70500

    MySQL系列之数字类型学习笔记

    数字类型 最近在看《MySQL技术内幕:SQL编程》并做了笔记,所以本博客是一篇笔记类型博客,分享出来方便自己复习,也可以帮助他人 整型 类型占用空间最小值(SIGNED)最大值(SIGNED)最小值...2147483648214748364704294967295BIGINT8-92233720368547758089223372036854775808018446744073709551615 位类型...位类型,关键字是bit,位类型用于存储位字段的值,BIT(M),M表示允许存储位数的值,M的范围为1到64,占用的空间为(M+7)/8字节 注意:如果分配的值长度小于M位,就在数值左边用0填充 #...,可以用HEX函数,查询出来是数字8(16进制) SELECT HEX(a) FROM t; 浮点型(非精确类型) MySQL支持两种浮点类型:单精度的FLOAT类型和双精度的DOUBLE类型 高精度类型...DECIMAL和NUMERIC是MySQL进度比较高的类型,语法都是DECIMAL(M,N)、NUMERIC(M,N),M表示精度,也就是整个数值的位数,,两种类型的最大位数M都为65,N表示标度,

    49210

    《MySQL核心知识》第5章:字段长度与类型宽度

    ❞ 今天是《MySQL核心知识》专栏的第5章,今天跟大家一起聊聊MySQL的字段长度与类型宽度。好了,开始今天的正题。...数据类型宽度 MYSQL中的整数型数据类型都可以指定显示宽度....创建一个表 CREATE TABLE tb_emp( id BIGINT(1)) id字段的数据类型为BIGINT(1),注意到后面的数字1,这表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数...显示宽度只是指明MYSQL最大可能显示的数字个数,数值的位数小于指定的宽度时会有空格填充,如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能显示出来。...例如,向year字段插入一个数值19999,当使用select查询的时候,MYSQL显示的将是完整带有5位数字的19999,而不是4位数字的值 如果不指定显示宽度,则MYSQL为每一种类型指定默认的宽度值

    2K30

    【类型挑战】获取元祖长度,难度⭐️

    Dear,大家好,我是“前端小鑫同学”,长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 知识运用: 目前还用的少的类型unknown,可以看一下抽象类型的分配性。...通过索引形式获取数组类型长度。...题目分析: 题目地址:18-easy-tuple-length 如上图所示我们需要设计一个通用的获取数组长度的类型工具,当我们传入一个只读数组后返回它的实际长度。...题目解答: 测试用例: 测试用例要求tesla的长度符合预期4和spaceX的长度符合预期5; 当传入数字和字符串时将抛出错误。...// @ts-expect-error Length, // @ts-expect-error Length, ] 复制代码 答案及解析: 在Ts类型编程中获取数组长度的方式和获取其中一个元素的方式一样

    2.7K20

    MySQL 数据类型详解:字符串、数字、日期

    在 MySQL 中,选择合适的[数据类型]对于数据库的存储效率和查询性能至关重要。...MySQL 提供了**字符串(String)、数字(Numeric)和日期(Date & Time)**三大类数据类型,每种类型又有不同的子类型,以适应不同的业务需求。1....数字(Numeric)数据类型数字类型用于存储整数或小数,主要分为整数类型和浮点/定点类型。...日期与时间(Date & Time)MySQL 提供多个日期时间类型:数据类型存储大小取值范围适用场景DATE3 字节1000-01-01 ~ 9999-12-31生日、订单日期DATETIME8 字节...总结MySQL 提供了多种数据类型,每种类型都有其适用场景。合理选择数据类型可以提升存储效率、优化查询性能,并避免精度损失。希望这篇文章能帮助你在数据库设计时做出更好的选择!

    84810

    Python 数字类型

    本文内容:Python 数字类型 更多内容请见 Python 变量 Python 表达式与运算符 Python bool类型与逻辑关系运算 ---- Python 数字类型 1.整型 int 2....浮点型 float 3.整型与浮点型的相互转换 ---- Python 中数字类型有4种,分别是整型int、浮点型float、复数型comlex、布尔型bool。...科学计数法含义如下: e = a * 10^b 浮点数的算数运算可能会产生不精确的结果: print(0.1 + 0.2) ---- 3.整型与浮点型的相互转换 通常来说,两个数字类型的数字进行算术运算时...,运算后生成结果为最宽类型: 两个整数运算,结果为整数(除法运算“/”除外,其运算结果为小数)。...通过内置的数字类型转换函数可以显式地在数字类型之间进行转换: int(x),将 x 转换为整数,x 可以是浮点数或字符串。 float(x),将 x 转换为浮点数,x 可以是整数或字符串。

    2.7K20

    Python数字类型

    数字类型 数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象。...还是要强调一下Python的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念 。只有1,[1,2],"hello"这一类对象才具有数据类型的概念。...Python 支持三种不同的数字类型,整数、浮点数和复数。 整数 通常被称为整型,数值为正或者负,不带小数点。...表示数字的时候,有时我们还会用八进制或十六进制来表示: 十六进制用0x前缀和0-9,a-f表示,例如:0xff00 八进制用0o前缀和0-7表示,例如0o45 python的整数长度为16,32位,并且通常是连续分配内存空间的...数字类型转换 在某些特定的情况下,我们需要对数字的类型进行转换。python为我们提供了内置的数据类型转换函数。 int(x) 将x转换为一个整数。

    1.6K40
    领券