mysql varchar int_mysql varchar和int字段解析

mysql4.1前的varchar(20)是20个字节。最大的限制是255字节。

mysql5.0以后varchar(20)是20个字符。最大的限制是65535-3占位符号=65532字节。

gbk:65532/2 字符

utf-8:65532/3 字符

如果超出了范围,会转为text类型来存储。

除了关注单个字段的限制,还要关注行的限制。mysql一行最大是65535也就是64k。

数据库中int(3)和int(11)的区别:

不论是int(3)还是int(11),它在数据库里面存储都是4个字节的长度,只是显示不同(在zerofill情况下)。在使用int(3)的时候如果输入10,会默认存储为010,也就是说这个3代表的是默认的长度,当不足3位时自动补全,超过3位时没有影响。

根据字段的字节数,可以算出该字段的范围,1字节=8bit(1B=8b),例如tinyint占1字节,也就是2的8次方=256,即无符号的最大值为256,有符号为-128到127。

MySQL手册中这个长度/值用"M"来表示的。 细心的朋友应该有注意到过MySQL手册上有这么一句话: M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关;

这句话看上去不太容易理解,因为这里有个关键词容易让我们混淆,"最大显示宽度"我们第一反应是该字段的值最大能允许存放的值的宽度。 以为我们建了int(1),就不能存放数据10了,其实不是这个意思。

这个M=5我们可以简单的理解成为,我们建立这个长度是为了告诉MySQL数据库我们这个字段的存储的数据的宽度为5位数, 当然如果你不是5位数(只要在该类型的存储范围之内)MySQL也能正常存储, 这也就能解释以上标红的话。

d13d1c47b5117c7c83b7aa8fe3137f3b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值