MYSQl字符串类型

本文详细介绍了MySQL中的四种字符串类型:CHAR和VARCHAR的区别,包括长度和空格处理;ENUM类型的使用,包括其成员数量限制及大小写敏感性;SET类型的特性,说明了它与ENUM的不同,以及如何在记录中处理重复成员。通过测试代码展示了这些类型的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值