字符串类型 | 字节 | 描述及存储需求 |
char(m) | m | m为0~255之间的整数 |
varchar(m) | m为0~65535之间的整数 | |
tinyblob | 允许长度为0~255字节,值的长度+1个字节 | |
blob | 允许长度为0~65535字节,值的长度+2个字节 | |
mediumblob | 允许长度为0~167772150字节,值的长度+3个字节 | |
longblob | 允许长度为0~4294967295字节,值的长度+4个字节 | |
tinytext | 允许长度为0~255字节,值的长度+2个字节 | |
text | 允许长度为0~65535字节,值的长度+2个字节 | |
mediumtext | 允许长度为0~167772150字节,值的长度+3个字节 | |
longtext | 允许长度为0~4294967295字节,值的长度+4个字节 | |
varbinary(m) | 允许长度0~m个字节的变长字节字符串,值的长度+1个字节 | |
binary(m) | m | 允许长度0~m个字节的定长字节字符串 |
char和varchar类型
1.char列的长度固定。varchar的列中的值为可变字符串。
2.检索时,char列删除了尾部的空格;varchar则保留尾部空格。
enum类型
1.enum是枚举类型,是一个字符串对象。它的值范围需要在创建表时通过枚举方式显式指定。
create table A( name enum('Y','N') );
desc A;
2.1~255个成员的枚举需要1字节存储。255~65535个成员需要2字节存储。
3.忽略大小写。插入null会存为null。
4.超出允许值范围的值,保存为空(空不等于null)。
insert into A value('y'),('N'),('n'),(1),(null);
select*from A;
set类型
1.set类型是一个字符串对象,可以包含0~64个成员。一个字段一次可以选取多个成员。
2.1~8个成员的集合,占1字节;
9~16个成员的集合,占2字节;
17~24个成员的集合,占3字节;
25~32个成员的集合,占4字节;
33~64个成员的集合,占8字节。
3.包含重复成员的集合只取一次。
4.忽略大小写。插入null会存为null。
5.超出允许值范围的值,留空。