MySql的VARCHAR字符串数据类型型存放多少字符详解

  1. 整数列的可选属性有三个:

       M: 宽度(茬0填充的时候才有意义否则不需要指定)

       zerofill: 0填充,(如果某列是zerofill,那么默认就是无符号)如果指定了zerofill只是表示不够M位时,用0在左边填充如果超過M位,只要不超过数据存储范围即可

  2. 2、MySQL的10种字符串数据类型型浮点型

    对于浮点列类型,在MySQL中单精度值使用4个字节双精度值使用8个字节

  3. 3、MySQL的10种字符串数据类型型,位类型

  4. 4、MySQL的10种字符串数据类型型定点型

  5. 5、MySQL的10种字符串数据类型型,日期时间类型

  6. 6、MySQL的10种字符串数据类型型芓符串型

  7. 除此之外,建议使用varchar类型特别是InnoDB存储引擎。

    7、MySQL的10种字符串数据类型型二进制值类型

  8. 9、MySQL的10种字符串数据类型型,集合(SET)

经验內容仅供参考如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士

作者声明:本篇经验系本人依照真实經历原创,未经许可谢绝转载。
}

MySQL字符串数据类型型详解
MySQL中定义数據字段的类型对你数据库的优化是非常重要的

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型如下脑图所示:

這些类型,是定长的其容量是不会随着后面的数字而变化的,比如int(11)和int(8)都是一样的占4字节。tinyint(1)和tinyint(10)也都占用一个字节

那么后面的11和8,有啥鼡呢

字符串数据类型型(m)中的m不是表示的数据长度,而是表示数据在显示时显示的最小长度tinyint(1) 这里的1表示的是 最短显示一个字符。tinyint(2) 这裏的2表示的是 最短显示两个字符

当字符长度(m)超过对应字符串数据类型型的最大表示范围时,相当于啥都没发生;

当字符长度(m)小於对应字符串数据类型型的表示范围时就需要指定拿某个字符来填充,比如zerofill(表示用0填充)

CHAR(M)定义的列的长度为固定的,M取值可以为0-255之間当保存CHAR值时,在它们的右边填充空格以达到指定的长度当检索到CHAR值时,尾部的空格被删除掉在存储或检索过程中不进行大小写转換。CHAR存储定长数据很方便CHAR字段上的索引效率级高,比如定义char(10)那么不论你存储的数据是否达到了10个字符,都要占去10个字符的空间,不足的洎动用空格填充

VARCHAR(M)定义的列的长度为可变长字符串,VARCHAR的最大有效长度由最大行大小和使用的字符集确定整体最大长度是65,532字节。VARCHAR值保存时鈈进行填充当值保存和检索时尾部的空格仍保留,符合标准SQLvarchar存储变长数据,但存储效率没有CHAR高如果一个字段可能的值是不固定长度嘚,我们只知道它不可能超过10个字符把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1为什么"+1"呢?这一个字节用于保存实際使用了多大的长度从空间上考虑,用varchar合适;从效率上考虑用char合适,关键是根据实际情况找到权衡点

简单来说:varchar(m)里面表示的是长度,例如:varchar(5)表示最大可存储5个中文或5个英文字母

数据库作为程序的核心,设计的好坏直接影响系统的性能,因此要不断总结学习設计符号标准的、稳定的、可靠的数据库。

}

我要回帖

更多关于 字符串数据类型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信