9.10.3 字符串类型

字符串类型分为3类。第一类为普通字符串,即小段文本,包括CHAR(固定长度字符)类型和VARCHAR(可变长度字符)类型。可以指定每种类型的宽度。无论数据大小是多少,CHAR类型的列都会用空格填补空白,但是VARCHAR列宽随数据大小变化。(请注意,获取CHAR类型数据的时候与存储VARCHAR数据的时候,MySQL将过滤多余的空格。)这两种类型都有速度与存储空间的问题,我们将在第12章中详细讨论。

第2类为TEXT和BLOB类型。这些类型大小可变,它们分别适用于长文本或二进制数据。

BLOB全称为大二进制对象(binary large objects)。它支持任何数据,例如,图像或声音数据。

在实际应用中,除了TEXT区分大小写而BLOB不区分之外,TEXT和BLOB列是相同的。

因为这些列类型可以容纳大量的数据,所以在使用它们时需要特别考虑。我们将在第12章中详细讨论。

第3类包括两种特殊类型,SET和ENUM。SET类型用来指定列中的值必须来自一个特定集合中的指定值。列值可以包含来自该集合的多个值。在指定的集合中,最大可以有64个元素。

ENUM就是枚举。与SET类型非常类似,但是该类型的列可以只有一个指定集合中的值或者NULL,在枚举中最大还可以有65 535个元素。

表9-9、表9-10、表9-11分别给出了这3类字符串类型数据的总结。表9-9给出了普通字符串类型。

表9-10给出了TEXT和BLOB类型。以字符计算的TEXT字段最大长度是可以存储在该字段中文件的最大字节数。

表9-11给出了ENUN和SET类型。

9.10.3 字符串类型 - 图1

9.10.3 字符串类型 - 图2

9.10.3 字符串类型 - 图3