MySQL中的整型类型示例详解

 更新时间:2025年10月09日 10:57:19   作者:JiaHao汤  
MySQL数据库支持多种数据类型,其中数值类型用于存储数字数据,这篇文章主要介绍了MySQL中整型类型的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

MySQL 中支持的整型类型

MySQL 中支持的整型类型包括 TINYINTSMALLINTMEDIUMINTINT/INTEGERBIGINT,分别代表小整数值、中整数值、大整数值、极大整数值。

数据类型字节大小有符号范围无符号范围
TINYINT1-128 到 1270 到 255
SMALLINT2-32768 到 327670 到 65535
MEDIUMINT3-8388608 到 83886070 到 16777215
INT/INTEGER4-2147483648 到 21474836470 到 4294967295
BIGINT8-9223372036854775808 到 9223,372036,8547758070 到 18446744073709551615

整型类型的可选参数

整型类型的可选参数有 3 个,分别是 MUNSIGNEDZEROFILL

M

M 表示显示宽度,M 的取值范围是 (0,255)。例如,int(5) 表示当数据宽度小于 5 位的时候在数字前面需要用字符填满宽度。M 需要配合 ZEROFILL 一起使用才有意义,否则指定显示宽度无效。

需要注意的是,设置显示宽度不会对插入的数据有任何影响,数据还是按照它所设置的整型类型的实际宽度进行保存,即显示宽度与类型可以存储的值范围无关。从 MySQL 8.0.17 开始,整数数据类型不推荐使用显示宽度属性。

整型数据类型可以在定义表结构时指定所需要的显示宽度,如果不指定,则系统为每一种类型指定默认的宽度值。例如:

CREATE TABLE test_table(
  X TINYINT,
  Y SMALLINT,
  Z MEDIUMINT,
  M INT,
  N BIGINT
);

通过 DESC 命令查看表结构(MySQL 5.7 版本中显示宽度如下,MySQL 8 版本中不再显示宽度):

TINYINT 有符号数和无符号数的取值范围分别为 -128~127 和 0~255,由于负号占了一个数字位,因此 TINYINT 默认的显示宽度为 4。同理,其他整数类型的默认显示宽度与其有符号数的最小值的宽度相同。

UNSIGNED

UNSIGNED 是无符号类型(非负),所有的整数类型都有一个可选的属性 UNSIGNED(无符号属性),无符号整数类型的最小取值为 0。所以,如果需要在 MySOL 数据库中保存非负整数值时,可以将整数类型设置为无符号类型。

使用 UNSIGNED 将整数类型设置为无符号类型的案例:

CREATE TABLE test_table(
  X TINYINT UNSIGNED,
  Y SMALLINT UNSIGNED,
  Z MEDIUMINT UNSIGNED,
  M INT UNSIGNED,
  N BIGINT UNSIGNED
);

通过 DESC 命令查看表结构(MySQL 5.7 版本中显示宽度,MySQL 8 版本中不再显式宽度):

需要注意的是,TINYINTSMALLINTMEDIUMINTINT 类型的显示宽度都会缩小一位,因为不再需要表示负数。

ZEROFILL

ZEROFILL 即 0 填充,ZEROFILL 的作用是在某列指定了 ZEROFILL 的情况下,MySQL 会自动为当前列添加 UNSIGNED 属性,并且当该列显示宽度不够 M 位时,使用 0 在列值左边填充,如果超过 M 位,只要不超过数据存储范围即可。

ZEROFILL 搭配 M 的使用案例:

CREATE TABLE test_table (
    X TINYINT(5) ZEROFILL,
    Y SMALLINT(10) ZEROFILL
);

通过 DESC 命令查看表结构(MySQL 5.7 版本中显示宽度,MySQL 8 版本中不再显式宽度):

总结 

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

相关文章

  • 分享MySql8.0.19 安装采坑记录

    分享MySql8.0.19 安装采坑记录

    这篇文章主要介绍了MySql8.0.19 安装采坑记录,内容虽然不长,但是都是朋友经常遇到的问题,小编特此分享到脚本之家平台,需要的朋友可以参考下
    2020-02-02
  • Sql在多张表中检索数据的方法详解

    Sql在多张表中检索数据的方法详解

    SELECT语句是SQL中最常用的语句。它的用途是从一个或多个表中检索信息。为了使用SELECT检索表数据,必须至少给出两条信息:想选择什么、从什么地方选择
    2023-02-02
  • MySQL的Redo Log数据恢复核心机制面试精讲

    MySQL的Redo Log数据恢复核心机制面试精讲

    这篇文章主要为大家介绍了MySQL的Redo Log数据恢复核心机制面试精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • MYSQL中查询LONGBLOB类型数据的大小的详细示例

    MYSQL中查询LONGBLOB类型数据的大小的详细示例

    在MySQL中,LONGBLOB 是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,但是,LONGBLOB 数据类型本身并不直接存储数据的大小(长度),它存储的是二进制数据的实际内容,这篇文章主要介绍了MYSQL中怎么查询LONGBLOB类型数据的大小,需要的朋友可以参考下
    2024-06-06
  • MySQL 的ANALYZE与 OPTIMIZE命令(最佳实践指南)

    MySQL 的ANALYZE与 OPTIMIZE命令(最佳实践指南)

    MySQL的ANALYZE TABLE更新统计信息优化查询性能,OPTIMIZE TABLE重组表结构回收空间,二者锁级别与执行时间不同,建议定期维护、备份并监控,结合工具跟踪表健康状况以保持数据库稳定运行,本文给大家介绍MySQL的ANALYZE与OPTIMIZE命令,感兴趣的朋友一起看看吧
    2025-07-07
  • Mysql中mysql.user用户表详解

    Mysql中mysql.user用户表详解

    在本篇文章里小编给大家分享了关于Mysql中mysql.user用户表的相关知识点内容,有需要的朋友们可以参考下。
    2019-09-09
  • 关于mysql中string和number的转换问题

    关于mysql中string和number的转换问题

    这篇文章主要介绍了关于mysql中string和number的转换问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • MySQL MyISAM 优化设置点滴

    MySQL MyISAM 优化设置点滴

    MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快, 只是不提供事务支持.大部分项目是读多写少的项目,而Myisam的读性能是比innodb强不少的
    2016-05-05
  • MySQL 的启动选项和系统变量实例详解

    MySQL 的启动选项和系统变量实例详解

    这篇文章主要介绍了MySQL 的启动选项和系统变量,结合实例形式详细分析了MySQL 启动选项和系统变量具体原理、功能、用法及操作注意事项,需要的朋友可以参考下
    2020-05-05
  • Windows下mysql5.7.10安装配置方法图文教程

    Windows下mysql5.7.10安装配置方法图文教程

    这篇文章主要为大家详细介绍了Windows上mysql5.7.10安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04

最新评论