专栏首页沈唁志MySQL中数值类型中smallint、mediumint等区别是什么

MySQL中数值类型中smallint、mediumint等区别是什么

MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型

数值类型中又可以分为整型、浮点型,或者可以说为严格数值数据类型以及近似数值数据类型

分别为 tinyint(m)、smallint(m)、mediumint(m)、int(m)、bigint(m)、float(m,d)、double(m,d)、decimal(m,d)

字节

1 bytes = 8 bit,1 个字节最多可以代表的数据长度是 2 的 8 次方11111111,在计算机中也就是-128 到 127

65535

在开发中遇到了一个存进程 id 的字段,设置了一个 smallint unsigned 类型,结果出现了所有进程 id 都为 65535

这个值有点特殊,端口的最大值也为 65535

计算机是按照二进制储存数据的,一般用 unsigned int 这种数据类型来储存正整数 在计算机中,每个整数都是用 16 位 2 进制数来表示的,所以最大的数就是 16 个 1,也就是 11111111 11111111 把二进制数 11111111 11111111 转化位十进制数就是 65535

区别

存储范围不同,分别为

smallint

说到了 65535,那就先说一下 smallint

2 个字节,用于小的整数,带符号的范围是-32768 到 32767,无符号的范围是 0 到 65535

我遇到的问题就是进程 id 超过 65535,入库的时候都被压为了 65535 导致

tinyint

1 个字节,用于很小的整数,带符号的范围是-128 到 127,无符号的范围是 0 到 255

mediumint

3 个字节,用于中等大小的整数,带符号的范围是-8388608 到 8388607,无符号的范围是 0 到 16777215

int

4 个字节,用于普通大小的整数,带符号的范围是-2147483648 到 2147483647,无符号的范围是 0 到 4294967295

bigint

8 个字节,用于极大整数,带符号的范围是-9223372036854775808 到 9223372036854775807,无符号的范围是 0 到 18446744073709551615

m 是什么意思

比如经常用到的 int(11),这里是 11 是什么意思,只能存 11 位数吗?当然不是

这个长度 11 并不代表允许存储的宽度,而是为了告诉 MySQL 数据库,我们这个字段的存储的数据的宽度为 M 位数, 当然如果你不是 M 位数(只要在该类型的存储范围之内)MySQL 也能正常存储

其他的数值类型中的 m 同理,int(1)和 int(11)中的 1 和 11 并不表示存储长度,只有字段指定 zerofill 时有用

`tel` int(11) unsigned zerofill NOT NULL,

如果实际值是 1234567891,指定了 zerofill,查询结果就是 01234567891,左边用 0 来填充

沈唁志,一个PHPer的成长之路! 任何个人或团体,未经允许禁止转载本文:《MySQL中数值类型中smallint、mediumint等区别是什么》,谢谢合作!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Yii Framework 中文网每天签到 Python 脚本

    经过国内 Yii 使用者坚持不懈的进行国际化翻译,以及在中国进行大量的宣传和推广,Yii China 目前已经成为全球最大的 Yii 中文社区

    沈唁
  • TP框架集成微信小程序getPhoneNumber获取手机号功能

    沈唁
  • 纯净得只剩下字的访问IP查询API

    沈唁
  • 让机器读懂视频:亿级淘宝视频背后的多模态AI算法揭秘

    随着4G的普及和5G的推出,内容消费的诉求越来越受到人们的重视。2019年互联网趋势报告指出在移动互联网行业整体增速放缓的大背景下,短视频行业异军突起,成为“行...

    CV君
  • NVIDIA Deepstream 4.0笔记(三):智能交通场景应用

    本次笔记整理自NVIDIA 8月20日在线研讨会,原讲座标题:DEEPSTREAM SDK – ACCELERATING REAL-TIME AI BASED ...

    GPUS Lady
  • 洛谷P4578 [FJOI2018]所罗门王的宝藏(dfs)

    attack
  • 0565-6.1.0-NFS异常导致Host Monitor及Agent服务错误

    如果CDH集群中的节点上有挂载NFS到某个目录,当NFS服务异常导致该目录不可用时,Cloudera Management Service的Host Monit...

    Fayson
  • 【HBUOJ】阿生的小球

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    韩旭051
  • 使用Docker快速体验MySQL半同步复制机制

    近期研究了下MySQL的半同步复制机制,想要体验一下。搭建环境是件麻烦事,然后就想到用Docker快速搭建环境。

    Coder Sam
  • Gradle 6 提示有内容将会在 7 的时候被丢弃

    Deprecated Gradle features were used in this build, making it incompatible with ...

    HoneyMoose

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动