关于MySql数据类型Number类型和String类型的某些概念区分

强烈建议大家阅读官方英文文档,写的非常详细
字符类型
在这里插入图片描述
M对于字符串类型的话指的是指的就是字符串的类型,对于二进制类型指的是字节长度,最大长度的决定因素有很多,可能是row size的限制,那么这个M是一种约束么
这么看吧,官方文档里有L和M两个参数,你会发现在Storage Required中,M并不影响,完全取决于实际的长度。对于为什么要有呢,我理解的是大概是为了提前发现问题,比如在后面你会发现,会在创建表格的时候进行row size警告,在一定长度上做了一些预防措施
Varchar会无限大么?不会的,其实M还是限制了的大小,L+1还是L+2应该取决于M*m(一个字符的字节长度),边长就是预留一个配置好的空间,但是不需要开辟,用的时候再去分配。比如一个火车可以容纳100个人,也就是row size就是100,但是我可以只放80个座位,坐满了我在加呗
除了设置的长度,和size,还有没有什么可以限制:也就是在什么都不配置的情况下其实只有row size去限制。跟text不同的是什么呢,text超出了就会就会在表外空间在创建一个空间去专门存。
对于Number类型:
什么是display width,对于Number的理解和字符串的M有区别,对于Numer型,m就是显示的宽度,这里需要解释一下显示宽度是什么意思,我们这样看,表示1有这么几种方式:
1,1.0,01,001,0001,1.00,1.0000
这上面都是都是1,但是他们从形式上看,不一样。有的一位数,有的两位数,有的三位数,用几位数去表示一个数字就是显示宽度。Int(11)表示就是用一个11位的数字去表示一个数字,其数字 的大小,完全由这个类型的字节数决定,1个字节8位,就是2^8,注意学过C语言的都知道,如果有符号,符号也要占一位。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值