tinyint、smallint、mediumint、int、bigint
一、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。
【注意】这里的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相关推荐
- MySql中 tinyint ,smallint,mediumint,int,bigint 与 decimal
MySql中 tinyint,smallint,mediumint,int 与 bigint 一.容纳数据范围不同 1.tinyint(M) M默认为4,存储占1个字节 带符号的范围是-128到127 ...
- 2、(整数类型)INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT
整数类型又称数值型数据,数值型数据类型主要用来存储数字. MySQL 提供了多种数值型数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大. MySQL 主要提供的 ...
- mysql smallint 长度_mysql中int、bigint、smallint 和 tinyint长度范围和区别
最近使用mySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...
- smallint mysql_mysql的数据类型int、bigint、smallint 和 tinyint取值范围
使用整数数据的精确数字数据类型. bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储 ...
- 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 ...
- mysql中bigint、int、mediumint、smallint 和 tinyint的区别
最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint.其中比较迷惑的是int和smallint的差别.今天就在网上仔细找了找,找到如下内容, ...
- 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 ...
- MySQL数据类型int、bigint、smallint 和 tinyint的区别
MySQL数据类型int.bigint.smallint 和 tinyint的区别 1. MySQL数据类型int.bigint.smallint 和 tinyint的区别 2. tinyint概述 ...
- MySQL INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT(整数类型)
整数类型又称数值型数据,数值型数据类型主要用来存储数字. MySQL 提供了多种数值型数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大. MySQL 主要提供的 ...
- Mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围
Mysql中bigint.int.mediumint.smallint 和 tinyint的取值范围 引言 社区这边的业务就遇到过这个坑,由于是用的开源框架,很多表id的字段用的mediumint类型 ...
最新文章
- mysqlevent每天,附答案
- axure 小程序 网盘_万门大学微信小程序实战开发特训班【完结】网盘高清全套最新系列精品课程...
- 百度腾讯中兴华为全部入局Linux Foundation深度学习基金会
- php文件里搜索关键字,php - PHP从文本文件中搜索关键字(Action'),使用该关键字打印所有行,然后计算打印的行数 - SO中文参考 - www.soinside.com...
- ORB-SLAM2介绍(1)
- c/c++中指针参数如何传递内存!
- c语言学习-编写函数求x的n次方的值
- 计算机课题立项申报书范文,课题立项申请书怎么写
- 材料成形计算机辅助设计,材料成形及控制工程
- 使用Echarts实现地图3D效果
- redis px nx ex xx
- VM无法获取 vmci 驱动程序版本句柄无效解决办法
- 网站服务器停止运行,服务器已停止响应是怎么回事
- C3 linearization
- Spring bean配置单例或多例模式
- 用Windows7玩游戏?小心你的存档!
- 【方案分享】华与华《爱的是酒》酣客品牌定位及传播咨询方案.pptx(附下载链接)...
- 分析机构对华为手机极为悲观,预估它今年出货量大跌超七成
- 萌新成长计划(开篇章)
- 大数据可视化——dataV,Echarts,蚂蚁金服L7世界地图引入,数字翻牌器,全屏,自定义排名轮播表
热门文章
- 英国人不能有“天伦之乐”吗?
- hive相关知识与操作
- libsvm python_python 使用libsvm分析数据
- 研究生课程教给我什么?
- 各种的web页的格式
- c语言fwrite参数,fwrite函数 fwrite函数用法
- AttributeError: Can‘t get attribute ‘SPPF‘
- linux suse11 sp3安装,SUSE Linux Enterprise Server 11 SP3源码安装R过程
- 信息学奥赛一本通(只记录有一定义意义的题目,有任何疑问可以私信我)
- 基于Python的Solidworks二次开发小尝试(一)