当前位置: 首页 > news >正文

tinyint(3)数据类型讲解

TINYINT(3) 是数据库中用于定义字段数据类型的一种写法,常见于 MySQL 等数据库系统。下面来详细了解其含义和作用:

数据类型本质

TINYINT 属于整数类型,在不同的数据库系统中,它所占用的存储空间和表示范围通常是固定的。以 MySQL 为例,TINYINT 一般占用 1 个字节(也就是 8 位)的存储空间,其数值范围如下:

 

  • 有符号(默认情况):能表示的范围是 -128 到 127。
  • 无符号(需明确指定):表示范围为 0 到 255。

括号内数字(3)的意义

括号中的数字(这里是 3)和该字段能存储的数值范围没有关系,它主要影响的是数据的显示宽度,这一功能只有在搭配 ZEROFILL 属性使用时才会发挥作用。具体说明如下:

 

  • 无 ZEROFILL 时TINYINT(3) 和 TINYINT 没有区别,都只是单纯地存储数值,不会对显示产生任何影响。
  • 有 ZEROFILL 时:当字段被定义为 TINYINT(3) ZEROFILL 时,如果存储的数值位数少于 3 位,会在左侧用 0 进行填充,让显示的宽度达到 3 位。不过要注意,这种填充只是在显示层面的处理,在数据库内部存储的仍然是实际的数值。

示例说明

下面通过几个例子来直观地理解 TINYINT(3) ZEROFILL 的效果:

 

  • 当存储的数值是 5 时,显示为 005
  • 存储的数值是 12 时,显示为 012
  • 若存储的数值是 123,由于位数已经达到 3 位,就不会进行填充,直接显示为 123
  • 当存储的数值超过 3 位,比如 1234,会按照 TINYINT 的范围进行截断(假设是无符号类型,此时会发生溢出错误)。

实际应用建议

  • 显示宽度的局限性:显示宽度并不会对字段的存储范围和溢出判断造成影响。也就是说,即使定义为 TINYINT(3),它依然能够存储超过 3 位的数值(只要在 TINYINT 的范围之内)。
  • 替代方案:在实际的开发过程中,建议优先考虑使用应用层的格式化功能来处理数据的显示,而不是依赖数据库的显示宽度特性。
  • 明确范围需求:如果需要存储的数值范围超出了 TINYINT 的默认范围,建议使用 SMALLINT 或者 INT 等更大的整数类型,而不是通过调整显示宽度来解决问题。

与其他数据库的差异

不同的数据库系统对 TINYINT(M) 的处理方式可能存在差异。例如:

 

  • MySQL:支持显示宽度和 ZEROFILL 特性。
  • PostgreSQL:不支持显示宽度语法,TINYINT 直接写作 SMALLINT
  • SQLite:没有专门的 TINYINT 类型,会将其视为 INTEGER

 

http://www.xdnf.cn/news/399061.html

相关文章:

  • stm32之BKP备份寄存器和RTC时钟
  • 基于Python的高效批量处理Splunk Session ID并写入MySQL的解决方案
  • Hadoop 的代理用户(Proxy User)​ 功能解释
  • 配置hosts
  • 推理加速新范式:火山引擎高性能分布式 KVCache (EIC)核心技术解读
  • 深入理解Embedding Models(嵌入模型):从原理到实战(下)
  • 【机器人】复现 UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025
  • SpringBoot校园失物招领信息平台
  • Shell脚本编程3(函数+正则表达式)
  • [特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
  • Modbus协议介绍
  • springboot旅游小程序-计算机毕业设计源码76696
  • Unity ML-Agents实战指南:构建多技能游戏AI训练系统
  • 在Ubuntu系统下编译OpenCV 4.8源码
  • react-diff-viewer 如何实现语法高亮
  • 一小时学会Docker使用!
  • 树莓派4基于Debian GNU/Linux 12 (Bookworm)开启VNC,使用MobaXterm连接VNC出现黑屏/灰屏问题
  • 笔记本电脑升级实战手册【扩展篇1】:flash id查询硬盘颗粒
  • 十四、继承与组合(Inheritance Composition)
  • 【Linux网络编程】HTTPS协议原理
  • 杨校老师项目之基于SSM与JSP的鲜花销售系统-【成品设计含文档】
  • node版本.node版本、npm版本和pnpm版本对应
  • 深入理解目标检测中的关键指标及其计算方法
  • 深度 |国产操作系统“破茧而出”:鸿蒙电脑填补自主生态空白
  • WebRTC实时音视频通话技术EasyRTC嵌入式音视频通信SDK,助力智慧物流打造实时高效的物流管理体系
  • Linux服务器管理面板新选择:mdserver-web深度解析与使用指南
  • 容器化-Docker-私有仓库Harbor
  • 【Web前端开发】CSS基础
  • 69、微服务保姆教程(十二)容器化与云原生
  • python打卡day22