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整型类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL数据库迁移后无法启动的问题解决

    MySQL数据库迁移后无法启动的问题解决

    本文主要介绍了MySQL数据库迁移后无法启动的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2025-06-06
  • MySQL数据库备份问题及处理

    MySQL数据库备份问题及处理

    本文主要介绍了MySQL的日志分类、备份重要性、备份类型、备份方法及备份命令等内容,日志包括错误日志、二进制日志、中继日志、慢查询日志等,备份方法包括冷备份、二进制日志增量备份、第三方工具备份等,备份类型有完全备份、差异备份、增量备份等
    2026-05-05
  • 解决MySQL8.0本地计算机上的MySQL服务启动后停止没有报告任何错误的问题(最新推荐)

    解决MySQL8.0本地计算机上的MySQL服务启动后停止没有报告任何错误的问题(最新推荐)

    解决MySQL服务启动后停止没有报告任何错误的方法包括修改my.ini文件编码为ANSI、修正MySQL服务可执行文件的路径以及关闭系统管理中的MySQL80服务,本文介绍解决MySQL8.0本地计算机上的MySQL服务启动后停止没有报告任何错误,感兴趣的朋友一起看看吧
    2025-03-03
  • sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符

    sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符

    这篇文章主要介绍了sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符的相关资料,文中通过代码介绍的非常详细,对大家学习或者使用数据库具有一定的参考借鉴价值,需要的朋友可以参考下
    2025-11-11
  • MySQL系列之五 视图、存储函数、存储过程、触发器

    MySQL系列之五 视图、存储函数、存储过程、触发器

    视图就是一条select语句执行后返回的结果集;触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合;函数存储着一系列sql语句,调用函数就是一次性执行这些语句,而存储过程就是一组可编程的函数,需要的朋友可以参考下
    2021-07-07
  • MySQL之主键索引排序失效问题

    MySQL之主键索引排序失效问题

    这篇文章主要介绍了MySQL之主键索引排序失效问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • MYSQL数据库Innodb 引擎mvcc锁实现原理

    MYSQL数据库Innodb 引擎mvcc锁实现原理

    这篇文章主要介绍了MYSQL数据库Innodb 引擎mvcc锁实现原理,但是mvcc 的实现原理是什么呢?下文我们就来实例说明来mvcc 的实现原理,感兴趣的小伙伴可以参考一下
    2022-05-05
  • mysql 带多个条件的查询方式

    mysql 带多个条件的查询方式

    这篇文章主要介绍了mysql 带多个条件的查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • MySQL中的BETWEEN...AND的使用情况

    MySQL中的BETWEEN...AND的使用情况

    这篇文章主要介绍了MySQL中的BETWEEN...AND的使用情况,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • MySQL导入与导出备份详解

    MySQL导入与导出备份详解

    大家好,本篇文章主要讲的是MySQL导入与导出备份详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论