当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL CHAR and VARCHAR用法及代码示例


MySQL中的CHARVARCHAR类型都用于存储字符串(即文本),但它们的存储方式不同。

它们都接受一个整数作为输入,特别是从 0255 。存储一个字符需要一个字节。

因此,CHAR(10) 意味着每个列条目的长度不能超过 10 个字符。

CHAR

存储CHAR格式数据所需的内存空间是固定的。继续我们的例子,假设我们使用CHAR(10)作为我们的数据类型:

CHAR(10)

现在,假设我们添加“bob” 作为条目,该条目只有 3 个字符长。有趣的是,这条数据实际上在我们的数据库中存储为“bob “(即7个尾随空格)。

这意味着即使技术上我们只存储 3 个字符,我们仍然使用 10 个字节。但是,当我们检索此数据时,MySQL 将删除幕后的尾随空格,因此您不必担心!

VARCHAR

VARCHAR和CHAR最大的区别是内存空间不固定。假设我们将数据类型设置为VARCHAR(10)

VARCHAR(10)

CHAR(10) 类似,我们不能存储超过 10 个字符的字符串。

现在,假设我们存储字符串 “bob” 。与 CHAR(10) 不同,MySQL 不添加任何尾随空格,这在我们节省大量内存空间的意义上非常有用。然而,这里需要注意的是,VARCHAR 每个数据需要 1 字节或 2 字节的额外存储空间。更具体地说,它们存储在前面(即前缀)。

注意

前缀用于指示数据中的字节数。每个字节都可以用来表示 字符。因此,对于 VARCHAR(10) 来说,所需的前缀仅占用 1 个字节,但例如 VARCHAR(400) ,前缀将占用 2 个字节。

字符(4)

需要存储

VARCHAR(4)

需要存储

''

''

4字节

''

1字节

'ab'

'ab'

4字节

'ab'

3字节

'abcd'

'abcd'

4字节

'abcd'

5字节

'abcdefgh'

'abcd'

4字节

'abcd'

5字节

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | CHAR and VARCHAR。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。