mysql中int、bigint、smallint 和 tinyint的区别详细介绍

mysql中int、bigint、smallint 和 tinyint的区别详细介绍

https://www.cnblogs.com/yiwd/p/5531167.html

mysql中int、bigint、smallint 和 tinyint的区别详细介绍

 

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

-128到127

1.BIT[M]

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

2.TINYINT[(M)] [UNSIGNED] [ZEROFILL]  M默认为4

很小的整数。带符号的范围是-128到127。无符号的范围是0到255。

3. BOOL,BOOLEAN

是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。

4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6

小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。

5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9

中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

6. INT[(M)] [UNSIGNED] [ZEROFILL]   M默认为11

普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20

大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。

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

tinyint(1) 和 tinyint(4) 中的1和4并不表示存储长度,只有字段指定zerofill是有用,
如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充。

 

———————

char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:

  char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.

(在检索操作中那些填补出来的空格字符将被去掉)

在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).

 

在MySQL中用来判断是否需要进行对据列类型转换的规则

  1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.

  2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.

  3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.

例外:长度小于4个字符的char数据列不会被转换为varchar类型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113036.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月25日 下午7:00
下一篇 2021年10月25日 下午8:00


相关推荐

  • kubeadm安装k8s 组件controller-manager 和scheduler状态 Unhealthy

    kubeadm安装k8s 组件controller-manager 和scheduler状态 Unhealthy

    2021年6月2日
    132
  • webrtc rtmp推流_海康rtmp协议格式

    webrtc rtmp推流_海康rtmp协议格式EasyRTMP介绍EasyRTMP是结合了多种音视频缓存及网络技术的一个rtmp直播推流端,包括:圆形缓冲区(circularbuffer)、智能丢帧、自动重连、rtmp协议等等多种技术,能够非常

    2022年8月6日
    7
  • tomcat环境变量配置后无效_Tomcat环境变量配置

    tomcat环境变量配置后无效_Tomcat环境变量配置如果你的 JDK 安装在 C 盘里 如 C j2sdk1 4 2 05 那么就在系统变量里 当然也可以在用户变量里 点新建 变量名 JAVA HOME 变量值 C j2sdk1 4 2 05 再次点新建 变量名 classpath 变量值 JAVA HOME lib dt jar 并在 path 里加入 JAVA HOME bin 那么你的 JDK 就配置成功了 当然最好是再试验一下是否配置成功 那

    2026年3月17日
    2
  • 苹果x充电慢是什么原因_苹果手机充不进去电?什么原因?怎么解决?

    突然发现苹果手机充不进电了?难道是手机坏了?还是其它方面的原因呢?今天蜜罐蚁小编给大家介绍一个有关苹果手机使用方面生活小妙招。下面是几种常见苹果手机充不进电原因总结。1、充电线损坏不知道是不是有一些朋友像小编一样,家里的苹果手机原装充电线早就找不到了,从网上买的数据线,结果这种网上买的数据线不耐用,用了几次发现就不好用了,怎么充电都没反应。这种情况就只能更换一根新的数据线了。2、充电器损坏其实这个…

    2022年4月7日
    330
  • hadoop教程一

    hadoop教程一Hadoop 分布式文件系统 HDFS 是一种分布式文件系统 设计用于在商品硬件上运行 它与现有的分布式文件系统有许多相似之处 但是 与其他分布式文件系统的差异很大 HDFS 具有高度容错能力 旨在部署在低成本硬件上 HDFS 提供对应用程序数据的高吞吐量访问 适用于具有大型数据集的应用程序 HDFS 是主 从架构 一个 HDFS 集群保护一个 NameNode 一个主服务器 还有多个 DataNode Name

    2026年3月18日
    2
  • jqprint打印时自定义页眉页脚

    jqprint打印时自定义页眉页脚需求 自定义页眉 实现打印时分页时每页页眉都显示相同的信息打印所用插件 jqprint 解决方法 divclass divHeader spanstyle margin right 20px 姓名 spanstyle color f86a33 spanstyle color f86a33 spanstyle margin right 20px divclass divHeader

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号