美文网首页
mysql中的varchar和int长度到底是啥

mysql中的varchar和int长度到底是啥

作者: PENG先森_晓宇 | 来源:发表于2021-07-21 11:35 被阅读0次

    vachar的长度到底是字符还是字节

    首先介绍一下字符和字节的定义

    • 字符 人们使用的记号,抽象意义上的一个符号。一个汉字,一个英文,一个数字就是一个字符,如'1', '中', 'a', '$', '¥',……
    • 字节 计算机中存储数据的单元,1个byte为一个字节,1个byte包含8个bit,也就是8个二进制位,0-9和a-z分别在ascii码中代表一个字节,utf8的中文汉字,一个字符占用3个字节。

    我们定义一个name字段varchar类型,长度为2。



    可以看到不管是数字,字母,还是中文,最多俩个字符。


    而mysql中的函数Length()计算的确实字节长度,可以看出一个Utf8的中文字符占3个字节

    int的长度指的是什么

    提前告知:int的长度并不是指int值的最大长度,整形值的最大长度由它的类型决定,tinyint,smallint,mediumint,int和bigint,不同类型的整形范围如下。


    那么int(11),这个11指的是什么呢?
    11 代表的并不是长度,而是字符的显示宽度,这个宽度并不会限制int值的最小值和最大值,影响值得范围的是值得类型,如上图。
    当 int 字段类型设置为无符号且填充零(UNSIGNED ZEROFILL)时,当数值位数未达到设置的显示宽度时,会在数值前面补充零直到满足设定的显示宽度。
    为什么会有无符号的限制呢,是因为 ZEROFILL 属性会隐式地将数值转为无符号型,因为填充的是0,最前位是0表示的就是正数。

    相关文章

      网友评论

          本文标题:mysql中的varchar和int长度到底是啥

          本文链接:https://www.haomeiwen.com/subject/yrfjmltx.html