|
字符串类型用来存储字符串数据,还可以存储图片和声音的二进制数据。字符串可以区分或者不区分大小写的串比较,还可以进行正则表达式的匹配查找。
MySQL 中的字符串类型有 CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM、SET 等。
下表中列出了 MySQL 中的字符串数据类型,括号中的M表示可以为其指定长度。
类型名称 | 说明 | 存储需求 | CHAR(M) | 固定长度非二进制字符串 | M 字节,1<=M<=255 | VARCHAR(M) | 变长非二进制字符串 | L+1字节,在此,L< = M和 1<=M<=255 | TINYTEXT | 非常小的非二进制字符串 | L+1字节,在此,L<2^8 | TEXT | 小的非二进制字符串 | L+2字节,在此,L<2^16 | MEDIUMTEXT | 中等大小的非二进制字符串 | L+3字节,在此,L<2^24 | LONGTEXT | 大的非二进制字符串 | L+4字节,在此,L<2^32 | ENUM | 枚举类型,只能有一个枚举字符串值 | 1或2个字节,取决于枚举值的数目 (最大值为65535) | SET | 一个设置,字符串对象可以有零个或 多个SET成员 | 1、2、3、4或8个字节,取决于集合 成员的数量(最多64个成员)
| VARCHAR 和 TEXT 类型是变长类型,其存储需求取决于列值的实际长度(在前面的表格中用 L 表示),而不是取决于类型的最大可能尺寸。
例如,一个 VARCHAR(10) 列能保存一个最大长度为 10 个字符的字符串,实际的存储需要字符串的长度 L 加上一个字节以记录字符串的长度。对于字符 “abcd”,L 是 4,而存储要求 5 个字节。
|
|