MYSQl字符串类型

来源:互联网 发布:青果软件怎么样 编辑:程序博客网 时间:2024/06/08 10:31

CHAR与VARCHAR

Char:长度固定为创建时声明的长度,长度范围为 0~255
Varchar:长度可变,长度为0~255(5.0.3以前,以后为0~65535)

Char插入时会把尾部空格删除
Varchar会保留空格

测试代码:

Create table vc(v VARCHAR(4) c CHAR(4));    Insert into vc values('ab  ','ab  ');    select length(v),length(c) from vc;    结果为: (4,2)    select concat(v,'+'),concat(c,'+') from vc;    结果为:ab  +   ,  ab+

length(v) 返回v的长度。
concat(v,’+’)合并两个字符串。
通过上述代码可以看出Char类型的空格被删除了。


ENUM类型

ENUM即枚举类型。枚举的数据大小由成员数量决定;
1个字节可以存储1~255个成员;
2个字节可以存储65535个成员;
成员数量在创建时给定。

如:

Create table t(gender enum('M','F'));

注意:ENUM类型是忽略大小写的。
ENUM类型插入时只能与其中之一匹配。
ENUM类型插入时若成员超出范围,不会报错,直接插入枚举的第一个成员。


SET类型

SET也是与枚举类似,也是为了限制输入的字符串而存在的。1个字节可以保存8个成员。
SET与枚举的不同点在于SET可以在同一条记录里插入多个成员,但每个成员不能多次出现在一条记录中。
如果同一条记录插入时存在重复成员,该成员只会被插入一次

测试代码:

Create table t (col set('a','b','c','d'));    insert into t values('a,b'),('a,d,a'),('a,b');

参考资料:《深入浅出MySQL》

0 0