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

mysql怎么存储整数

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:占用4字节,取值范围为-2147483648到2147483647(有符号)或0到4294967295(无符号)。这是最常用的整数类型。
  • BIGINT:占用8字节,取值范围为-9223372036854775808到9223372036854775807(有符号)或0到18446744073709551615(无符号)。

相关优势:

  1. 效率:整数类型的数据在数据库中存储和处理的速度非常快。
  2. 空间效率:相对于其他数据类型,整数类型通常占用较少的存储空间。
  3. 简单性:整数类型的数据操作简单,易于理解和使用。

类型及应用场景:

  • TINYINT和SMALLINT适用于存储小范围的整数,如年龄、评分等。
  • MEDIUMINT适用于存储中等范围的整数,如产品ID、订单数量等。
  • INT是最常用的整数类型,适用于大多数场景,如用户ID、时间戳等。
  • BIGINT适用于存储大范围的整数,如社交媒体上的粉丝数量、金融交易金额等。

遇到的问题及解决方法:

问题1:插入超出范围的整数值。

解决方法:确保插入的整数值在所选整数类型的取值范围内。如果需要存储超出范围的值,可以考虑使用BIGINT类型或使用其他数据类型(如DECIMAL)来存储。

问题2:整数类型的精度问题。

解决方法:整数类型本身没有精度问题,因为它们不包含小数部分。但是,如果需要进行精确的数值计算,可以考虑使用DECIMAL类型来存储数据。

示例代码:

代码语言:txt
复制
-- 创建一个包含整数类型的表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    age TINYINT,
    score SMALLINT,
    product_id MEDIUMINT,
    transaction_amount BIGINT
);

-- 插入数据
INSERT INTO users (age, score, product_id, transaction_amount)
VALUES (25, 95, 12345, 9876543210);

-- 查询数据
SELECT * FROM users;

参考链接地址:MySQL整数类型文档

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

相关·内容

怎么优雅的选择 MySQL 存储引擎

对于数据库这一块询问比较多的就是在 MySQL 中怎么去选择一种何时当前业务需求的存储引擎,而 MySQL 中支持的存储引擎又有很多种,那么 MySQL 中分别又有那些,怎么优雅的使用呢?...不同的存储引擎保存数据和索引的方式是不同的,但表的定义则是在 MySQL 服务层wk统一处理的。...查看支持引擎 想了解 MySQL 中支持的引擎的情况,可以使用如下命令查看: show engines; 结果如下(MySQL版本:Ver 8.0.19): mysql> show engines; +...MySQL 存储引擎分类有 MyISAM、InnoDB、Memory、Merge等,可以看上面表中列出的支持引擎,但是其中最为常用的就是 MyISAM 和 InnoDB 两个引擎,其中针对于以上讲到的存储引擎...参考文章 Mysql 存储引擎的区别和比较 – zgrgfr – CSDN Mysql的存储引擎之:MERGE存储引擎 – 翔之天空 – CSDN MySQL存储引擎之Merge引擎 MySQL存储引擎

1.6K40

【mysql】整数类型

答案:不会对插入的数据有任何影响,还是按照类型的实际宽度进行保存,即显示宽度与类型可以存储的值范围无关。从MySQL 8.0.17开始,整数数据类型不推荐使用显示宽度属性。...中显式如下,MySQL8中不再显式范围) mysql> desc test_int11; +-------+--------------+------+-----+---------+-------+...所以,如果需要在MySQL数据库中保存非负整数值时,可以将整数类型设置为无符号类型。 int类型默认显示宽度为int(11),无符号int类型默认显示宽度为int(10)。...如果整数值超过M位,就按照实际位数存储。只是无须再用字符 0 进行填充。 3. 适用场景 TINYINT:一般用于枚举数据,比如系统设定取值范围很小且固定的场景。...在评估用哪种整数类型的时候,需要考虑存储空间和可靠性的平衡问题:一方面,用占用字节数少的整数类型可以节省存储空间;另一方面,要是为了节省存储空间, 使用的整数类型取值范围太小,一旦遇到超出取值范围的情况

3.1K20
  • MySQL 的 InnoDB 存储引擎是怎么设计的?

    这其中,第一张图的最底下的存储引擎层(Storage Engines),它决定了 MySQL 会怎样存储数据,怎样读取和写入数据,也在很大程度上决定了 MySQL 的读写性能和数据可靠性。...对于这么重要的一层能力,MySQL 提供了极强的扩展性,你可以定义自己要使用什么样的存储引擎:InnoDB、MyISAM、MEMORY、CSV,甚至可以自己开发一个存储引擎然后使用它。...通常我们说 Mysql 高性能高可靠,都是指基于 InnoDB 存储引擎的 Mysql,所以,这一讲,先让我们来看看,除了 redo log,InnoDB 里还有哪些成员,他们都有什么能力,承担了什么样的角色...,他们之间又是怎么配合的?...怎么理解呢? 前面提到过,MySQL 以「页」为读取和写入单位,一个「页」里面有多行数据,写入数据时,MySQL 会先写内存中的页,然后再刷新到磁盘中的页。

    1.7K10

    数据在内存中的存储之整数存储

    整数在内存中的存储 整数的2进制表示方法有三种,即原码、反码和补码 三种表示方法均有符号位和数值位两部分,符号位都是0表用示“正”,用1表示“负”,而最高的一位是被当做符号位,剩余的都是数值位。...正整数的原、反、补码都相同。 负整数的三种表示方法各不相同。 原码:直接将数值按照正负数的形式翻译成二进制得到的就是原码。 反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。...在计算机系统中,数值一律用补码来表示和存储。...1.1大小端字节序和字节序判断 大小端:         其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念:...举一个简单整数存储例子 : #include int main() { char a = -1;//char是否有符号,取决于编译器,在这里,我们以有符号举例 signed

    1.6K10

    「干货」MySQL 的 InnoDB 存储引擎是怎么设计的?

    这其中,第一张图的最底下的存储引擎层(Storage Engines),它决定了 MySQL 会怎样存储数据,怎样读取和写入数据,也在很大程度上决定了 MySQL 的读写性能和数据可靠性。...对于这么重要的一层能力,MySQL 提供了极强的扩展性,你可以定义自己要使用什么样的存储引擎:InnoDB、MyISAM、MEMORY、CSV,甚至可以自己开发一个存储引擎然后使用它。...通常我们说 Mysql 高性能高可靠,都是指基于 InnoDB 存储引擎的 Mysql,所以,这一讲,先让我们来看看,除了 redo log,InnoDB 里还有哪些成员,他们都有什么能力,承担了什么样的角色...,他们之间又是怎么配合的?...怎么理解呢? 前面提到过,MySQL 以「页」为读取和写入单位,一个「页」里面有多行数据,写入数据时,MySQL 会先写内存中的页,然后再刷新到磁盘中的页。

    2K20

    mysql 的一行记录是怎么存储的?

    mysql 的一行记录,最终肯定是存储在磁盘上,也就是肉眼可见的文件上,今天我们的目标很简单,就是看看它到底是怎么存的。...可是与后面怎么也对应不上,这是咋回事呢? 还记不记得,mysql 每行记录会有几个隐藏列,rowid,事务 ID,回滚指针?没错,就是他们。...就是 mysql 规定了一种将一行记录存储在磁盘中的格式,以便于 mysql 自己的程序可以根据这个结构认识这一行记录。...所以不难想到,它一定利用了 frm 文件中存储的表结构信息。 其次,要让 mysql 在知道这些信息的同时,还能更方便地利用这个结构,占用更少的存储空间,以及提升程序的便利性。...拿占用更少存储空间这块来讲,NULL 值完全可以当做普通列,也存储在后面,然后规定一个 NULL 值的二进制标识符即可。

    2.6K30

    MySQL时区怎么排查?TIMESTAMP与DATETIME的存储差异

    差在存储,不在显示先看它们各自存了什么。TIMESTAMP存的是一个UTC时间戳,4字节,本质是个整数。DATETIME存的是打包好的日期时间字面量,5字节起。这两个是不是一回事,看字节就知道。...(数值按MySQL8.0的时间类型内部格式,换版本以实测为准。)一个存时刻,一个存日期除了存法,范围和换算规则也不同。这张表我常放身边,选型时对着看。...TIMESTAMPDATETIME存什么UTC时间戳(整数)日期时间字面量占用4字节5字节起范围1970起,2038止1000到9999会话时区读和写都受它影响完全不受适合记事件发生的绝对时刻单据上的业务日期最要命的是范围...MySQL5.6起有explicit_defaults_for_timestamp,打开它这个隐式行为才关掉。建表前先确认这个开关,比事后奇怪"谁改了我的时间"省事。时区不止一层时区不是只有一个设置。...你得先说清楚这个字段记的是"哪一刻"还是"哪一天",再谈怎么存、怎么查。这两个都定了,时区、夏令时、跨区对账才有得聊。你们系统的时间字段存UTC还是本地时间?跨时区对账又是怎么处理的?评论区聊聊。

    18510

    MySQL有哪些存储引擎(MySQL存储引擎大全)

    MyISAM在所有MySQL版本里被支持;不支持事务处理;它是MySQL的默认的存储引擎; MEMORY MEMORY存储引擎,别称HEAP存储引擎;提供“内存中”表,将数据存储在内存中。...MEMORY存储引擎不支持事务处理;MySQL的所有版本都支持InnoDB存储引擎;注释:MEMORY存储引擎正式地被确定为HEAP引擎。...InnoDB存储引擎;它支持事务处理; BDB BDB存储引擎,别名BERKELEYDB;BDB存储引擎提供事务安全表;mysql 5.1以下版本才支持此存储引擎; EXAMPLE EXAMPLE存储引擎是一个...你可以用这个引擎创建表,但没有数据被存储于其中或从其中检索。这个引擎的目的是服务,在MySQL源代码中的一个例子,它演示说明如何开始编写新存储引擎。同样,它的主要兴趣是对开发者。...NDB NDB存储引擎,别名NDBCLUSTER;NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上的表的存储引擎。它在MySQL-Max 5.1二进制分发版里提供。

    8.5K41

    # MySQL server 层和存储引擎层是怎么交互数据的?

    MySQL 存储引擎是用插件方式实现的,所以在源码里分为两层:server 层、存储引擎层。 server 层负责解析 SQL、选择执行计划、条件过滤、排序、分组等各种逻辑。...写数据就是把 MySQL 传给存储引擎的数据存到磁盘文件或者内存中(对于 Memory 引擎是存储到内存),读数据就是把数据从磁盘或者内存读出来返回给 server 层。...由于 InnoDB 中,内容是按大端模式存储的(内容高位在前,低位在后),而 server 层是按照小端模式读取的,所以在写入整数字段内容到 record[0] 之前会进行大小端存储模式的转换。...enum 类型在存储引擎中是用整数存储的,存储引擎读取 e1 字段内容后,会对内容进行大小端转换,把转换后的内容写入 ptr 属性指向的内在空间。...set 类型在存储引擎中也是按照整数存储的,存储引擎读取 s1 字段内容后,也需要对内容进行大小端转换,把转换后的内容写入 ptr 属性指向的内存空间。

    1.9K52

    【MySQL】MySQL的存储引擎

    不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。现在 许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。...用户可以 根据不同的需求为数据表选择不同的存储引擎 可以使用 SHOW ENGINES 命令 可以查看Mysql的 所有执行引擎我们 可以到 默认的执行引擎是innoDB 支持事务,行级锁定和外键。...拥有较高的插入,查询速度,但不支持事 务 InnoDB:事务型速记的首选引擎,支持ACID事务,支持行级锁定,MySQL5.5成为默认数据库引 擎 Memory: 所有数据置于内存的存储引擎,拥有极高的插入...并且其内容会在MYSQL重新启动是会丢失。 Archive :非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。...关闭mysql服务 2. 找到mysql安装目录下的my.ini文件: 3.

    6.9K20

    Mysql存储过程和存储函数

    Mysql存储过程和存储函数 1.1. 存储过程的好处 1.2. 存储函数 1.2.1. 创建存储函数 1.2.1.1. 指定参数 1.2.2. 调用存储函数 1.2.3....参考文章 Mysql存储过程和存储函数 存储过程的好处 增强SQL语言的功能和灵活性:存储过程可以用控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。...存储函数 创建存储函数 在Mysql中有许多已经存在的存储函数,比如CONCAT(..),LENGTH(str)。但是我们也可以自己定义存储函数。...delimiter ; call selectUserById(1); : 查询id=1的用户信息 call selectUserById(null); :查询所有的用户信息,显示前面两个 注释 MySQL...MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT: IN参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值 OUT:该值可在存储过程内部被改变

    3.3K20

    MySQL存储过程

    2、简化操作 1-2、语法: CREATE PROCEDURE 存储过程名(参数列表) BEGIN 存储过程体(一组合法的SQL语句) END 注意: 1、参数列表包含三部分 参数模式 参数名...,begin end可以省略 存储过程体中的每条sql语句的结尾要求必须加分号。...存储过程的结尾可以使用 delimiter 重新设置 语法: delimiter 结束标记 案例: delimiter $ 二、存储过程创建和使用语法 2-1、语法 CALL 存储过程名(实参列表);...语法:drop procedure 存储过程名 DROP PROCEDURE p1; #错误演示,不支持批量删除 DROP PROCEDURE p2,p3 四、查看存储过程的信息 语法:show...create procedure 存储过程名 SHOW CREATE PROCEDURE p1; #错误演示 DESC p1; 存储过程案例 #一、创建存储过程实现传入用户名和密码,插入到admin

    12.9K10

    MySQL 存储过程

    存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数...存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升 一、存储过程概述 1.1、什么是存储过程 存储过程是数据库中的一个重要对象。...存储过程是在数据库系统中,一组为了完成特定功能的SQL 语句集。存储过程是存储在数据库中,一次编译后,到处运行。不需要再次编译,用户通过指定存储过程的名字并传递参数(如果该存储过程带有参数)来执行。...7.1、存储过程查看 格式: show procedure status [like '%字符串%']; 案例: mysql> show procedure status; mysql>show procedure...status like '%emp%'; 7.2、存储过程删除 格式: drop procedure 存储过程名; 案例: mysql> drop procedure emp_id; Query OK

    41.6K20

    MySQL 存储函数

    1.简介 MySQL 存储函数(Stored Function)和存储过程类似,也是存储在数据库中的程序,但它会返回一个计算结果。...存储函数可以和内置函数或者表达式一样用于 SQL 语句,可以提高代码的可读性以及可维护性。 MySQL 存储过程和存储函数统称为存储例程(Stored Routine)。...在创建存储函数时还可以指定一些可选的属性,这些属性与创建存储过程时的属性是一致的。关于这些属性的含义请参见 MySQL 存储过程。 下面是创建函数的一个实例。...与存储过程不同的是,使用 mysql 客户端创建存储函数没有必要自定义分隔符,因为函数定义不包含语句分隔符分号。...3.调用存储函数 在 MySQL 中,可以通过在 SQL 查询中使用 SELECT 调用存储函数。 比如调用上面创建的存储函数 hello 并传入字符串 world。

    1.7K10
    领券