13.5 CHAR
在本教程中,您将了解MySQL CHAR
数据类型以及如何将其应用于数据库表设计。
MySQL CHAR数据类型简介
CHAR
数据类型是MySQL中固定长度的字符类型。 我们经常声明CHAR
类型,其长度指定要存储的最大字符数。 例如,CHAR(20)
最多可以容纳20
个字符。
如果要存储的数据是固定大小,则应使用CHAR
数据类型。在这种情况下,与VARCHAR相比,您将获得更好的性能。
CHAR
数据类型的长度可以是从0
到255
的任何值。当存储CHAR
值时,MySQL将其值与空格填充到声明的长度。
当查询CHAR
值时,MySQL会删除尾部的空格。
请注意,如果启用
PAD_CHAR_TO_FULL_LENGTH SQL
模式,MySQL将不会删除尾随空格。
以下语句创建具有CHAR
列的表。
status
列使用CHAR
数据类型,并有指定最多可容纳3
个字符。
现在,使用以下语句向mysql_char_test
表中插入2
行数据。
下面我们使用length函数来获取每个CHAR
值的长度。
执行上面查询语句,得到以下结果 -
以下语句将插入带有前导和尾随空格的CHAR
值。
但是,当我们检索该值时,MySQL会删除尾随空格。
执行上面查询语句,得到以下结果 -
比较MySQL CHAR值
存储或比较CHAR
值时,MySQL使用分配给列的字符集排序规则。
使用比较运算符比较CHAR
值时,MySQL不会考虑尾随空格,例如:=
,<>
,>
,<
等等。
请注意,当您使用
CHAR
值进行模式匹配时,LIKE
运算符会考虑尾随空格。
在前面的例子中,我们将值Y
的前面和后面都加空格存储。 但是,当执行以下查询时:
MySQL没有返回任何行记录,因为它不考虑尾随空格。 要与“Y
”匹配,需要删除尾随空格:
执行上面查询语句,得到以下结果 -
MySQL CHAR和UNIQUE索引
如果CHAR
列具有UNIQUE
索引,并且插入的值有多个尾随空格不同的值,则MySQL将拒绝因重复键错误而要求您进行的更改。
请参见以下示例
首先,为mysql_char_test
表的status
列创建唯一的索引。
其次,在mysql_char_test
表中插入一行。
在本教程中,我们向您介绍了MySQL CHAR
数据类型及其功能。 现在,相信您应该很好地了解CHAR
数据类型,以将其应用于数据库设计。
Last updated