一、int(1) 和 tinyint(1) 的区别

MySQL中设置了储存类型后,储存是定长的,int(1) 和 int(4) 在硬盘中所占的字节数都是一样的。因此整型的数据类型括号内的数字不管是多少,所占的存储空间都是一样,它存储的范围始终是 -2^31[-2,147,483,648] 到 2^31 - 1[2,147,483,647]。int(1) 和 int(4) 无论本身长度还是存储方式上都是一样的,区别就是显示的长度不同。但是要设置一个参数:如果列制定了zerofill 就会用0填充显示,int(4)指定后就会显示为0002。

int(1)和tinyint(4) 相比,肯定int 大。注意数字类型后面括号中的数字,不表示长度,表示的是显示宽度,这点与 varchar、char 后面的数字含义是不同的。

显而易见,int(1) 和 tinyint(1) ,在设计数据库的时候应该选择tinyint(1)。所占的储存空间越少越好,当然要够用才行。像这样储存一个个位数的字段,还是用tinyint(1)的好。

二、位(bit)、字节(byte)、字符、编码

1️⃣BIT[M]
位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1

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

3️⃣TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4
很小的整数。带符号的范围是-128到127。无符号的范围是0到255。

4️⃣BOOL、BOOLEAN
是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。

5️⃣SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6
小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。

6️⃣MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9
中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

7️⃣INT[(M)] [UNSIGNED] [ZEROFILL] M默认为11
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

8️⃣BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20
大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。

【注意】这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的。

三、总结

1️⃣tinyint一个字节 smallint 两个字节 MEDIUMINT三个字节 int 4个字节 BIGINT 8个字节。
2️⃣tinyint(1) 和 tinyint(3) 没什么区别,占用字节都是一位,存储范围都是一样的
3️⃣tinyint(3) 如果该字段指定zerofill ,当插入的数据少于3位的时候,左边自动补零,这才是限制显示长度
4️⃣int(1) 和 tinyint(1) ,够用的情况下,优先选择tinyint(1),因为占字节少、节省空间。
5️⃣varchar(5) 这里的 5 限制的是储存字符的个数,字符不分贵贱(不分中文、英文、数字…)

tinyint、smallint、mediumint、int、bigint相关推荐

  1. MySql中 tinyint ,smallint,mediumint,int,bigint 与 decimal

    MySql中 tinyint,smallint,mediumint,int 与 bigint 一.容纳数据范围不同 1.tinyint(M) M默认为4,存储占1个字节 带符号的范围是-128到127 ...

  2. 2、(整数类型)INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT

    整数类型又称数值型数据,数值型数据类型主要用来存储数字. MySQL 提供了多种数值型数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大. MySQL 主要提供的 ...

  3. mysql smallint 长度_mysql中int、bigint、smallint 和 tinyint长度范围和区别

    最近使用mySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...

  4. smallint mysql_mysql的数据类型int、bigint、smallint 和 tinyint取值范围

    使用整数数据的精确数字数据类型. bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储 ...

  5. mysql tinyint int mediumint 用哪个好,MySQL中的tinyint,smallint,mediumint,bigint和int有什么区别?...

    What is the difference between tinyint, smallint, mediumint, bigint and int in MySQL? In what cases ...

  6. mysql中bigint、int、mediumint、smallint 和 tinyint的区别

    最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...

  7. mysql:列类型之整数(tinyint、smallint、mediumint、int、bigint)

    环境: window10 vs2022 .net core 3.1 mysql 8.0.25 DBeaver 参考: <mysql:11.1.2 Integer Types (Exact Val ...

  8. MySQL数据类型int、bigint、smallint 和 tinyint的区别

    MySQL数据类型int.bigint.smallint 和 tinyint的区别 1. MySQL数据类型int.bigint.smallint 和 tinyint的区别 2. tinyint概述 ...

  9. MySQL INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT(整数类型)

    整数类型又称数值型数据,数值型数据类型主要用来存储数字. MySQL 提供了多种数值型数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大. MySQL 主要提供的 ...

  10. Mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围

    Mysql中bigint.int.mediumint.smallint 和 tinyint的取值范围 引言 社区这边的业务就遇到过这个坑,由于是用的开源框架,很多表id的字段用的mediumint类型 ...

最新文章

  1. mysqlevent每天,附答案
  2. axure 小程序 网盘_万门大学微信小程序实战开发特训班【完结】网盘高清全套最新系列精品课程...
  3. 百度腾讯中兴华为全部入局Linux Foundation深度学习基金会
  4. php文件里搜索关键字,php - PHP从文本文件中搜索关键字(Action'),使用该关键字打印所有行,然后计算打印的行数 - SO中文参考 - www.soinside.com...
  5. ORB-SLAM2介绍(1)
  6. c/c++中指针参数如何传递内存!
  7. c语言学习-编写函数求x的n次方的值
  8. 计算机课题立项申报书范文,课题立项申请书怎么写
  9. 材料成形计算机辅助设计,材料成形及控制工程
  10. 使用Echarts实现地图3D效果
  11. redis px nx ex xx
  12. VM无法获取 vmci 驱动程序版本句柄无效解决办法
  13. 网站服务器停止运行,服务器已停止响应是怎么回事
  14. C3 linearization
  15. Spring bean配置单例或多例模式
  16. 用Windows7玩游戏?小心你的存档!
  17. 【方案分享】华与华《爱的是酒》酣客品牌定位及传播咨询方案.pptx(附下载链接)...
  18. 分析机构对华为手机极为悲观,预估它今年出货量大跌超七成
  19. 萌新成长计划(开篇章)
  20. 大数据可视化——dataV,Echarts,蚂蚁金服L7世界地图引入,数字翻牌器,全屏,自定义排名轮播表

热门文章

  1. 英国人不能有“天伦之乐”吗?
  2. hive相关知识与操作
  3. libsvm python_python 使用libsvm分析数据
  4. 研究生课程教给我什么?
  5. 各种的web页的格式
  6. c语言fwrite参数,fwrite函数 fwrite函数用法
  7. AttributeError: Can‘t get attribute ‘SPPF‘
  8. linux suse11 sp3安装,SUSE Linux Enterprise Server 11 SP3源码安装R过程
  9. 信息学奥赛一本通(只记录有一定义意义的题目,有任何疑问可以私信我)
  10. 基于Python的Solidworks二次开发小尝试(一)