MySQL数据类型:字符串类型

字符串类型可分成如下几类:

1. CHAR、VARCHAR

2. BINARY、VARBINARY

3. BLOB、TEXT

4. ENUM

5. SET

字符串类型

最大值

CHAR(M)

M取值范围为0~255个字符

VARCHAR(M)

M取值范围为0~65535个字符(与字符集和行的大小有关)

BINARY(M)

M取值范围为0~255个字节

VARBINARY(M)

M取值范围为0~65535个字节

TINYBLOB

属于BLOB类别。取值范围为0~255个字节

BLOB

属于BLOB类别。取值范围为0~65535个字节

MEDIUMBLOB

属于BLOB类别。取值范围为224-1个字节

LONGBLOB

属于BLOB类别。取值范围为232-1个字节

TINYTEXT

属于TEXT类别。取值范围为0~255个字符

TEXT

属于TEXT类别。取值范围为0~65535个字符

MEDIUMTEXT

属于TEXT类别。取值范围为224-1个字符

LONGTEXT

属于TEXT类别。取值范围为232-1个字符

ENUM(‘value1’,’value2’,……)

枚举类型,范围在表创建时指定,最多65535个成员

SET(‘value1’,’value2’,……)

枚举类型,范围在表创建时指定,最多64个成员

  1. CHAR是定长字符串,VARCHAR是变长字符串。如果数据的长度大于CHAR在定义时指定的长度,保存时会在右边填充空格,查询时再把空格去掉(与SQL MODE有关)。除了保存数据本身,VARCHAR还会用一到两个字节来保存数据的长度。
  2. BINARY和VARBINARY,跟CHAR和VARCHAR类似,只不过前者保存的是二进制字符串,而后者保存的就是字符串。
  3. BLOB,是binary large object的缩写,用来保存二进制大对象。TEXT与BLOB比较相似,但它们保存的是字符串而不是二进制形式。它们都有四种具体的数据类型,见上表。
  4. ENUM和SET都是枚举类型,ENUM数据列必须包含且只能包含一个列表中的成员,但SET允许包含任意多个,也可以为空。ENUM最多有65,535个选项,SET最多有64个选项。