mysql char 与 varchar 的区别

1 .简述 :

CHAR 类型:

CHAR 类型:CHAR 是固定长度字符数据类型,当你创建一个 CHAR 字段时,MySQL会分配固定长度的空间,根据字符集,这个长度可能是1到255之间的任何值。CHAR

字段存储固定长度的字符串,如果数据不足指定的长度,MySQL会在其后添加空格以达到指定的长度。

VARCHAR 类型:

VARCHAR 类型:VARCHAR 是可变长度字符数据类型,当你创建一个 VARCHAR 字段时,MySQL会根据实际需要分配长度,这个长度可以是1到65535之间的任何值。VARCHAR

字段存储可变长度的字符串,所以它只会使用必要的空间。

2 .存储和检索方面的主要区别:

CHAR 列的长度固定,不管是否存储了数据,VARCHAR 列的长度是可变的。
CHAR 的存储效率高,VARCHAR 的存储效率较低。
CHAR 类型的字段长度固定,最大长度是255个字符;VARCHAR 类型的字段长度可变,最大长度是65535个字符。
CHAR 列长度固定为创建表时声明的长度, 长度值范围是 1 到 255 当 CHAR 值被存储时, 它们被 用空格填充到特定长度, 检索 CHAR 值时需删除尾随空格。

3 . 解决方案:

如果你知道你的字段将会有固定的长度,并且长度不会超过255,你可以使用 CHAR 类型。
如果你的字段长度可变,并且最大长度不会超过65535,你可以使用 VARCHAR 类型。
如果你的字段长度可变,并且最大长度可能超过65535,你可以使用 TEXT 或 BLOB 类型。
例子

4 例子:

CREATE TABLE example (
    char_column CHAR(10),
    varchar_column VARCHAR(10)
);


INSERT INTO example (char_column, varchar_column) VALUES ('test', 'test');

SELECT CONCAT(char_column, ' '), CONCAT(varchar_column, ' ') FROM example;

在这个例子中,char_column 将显示为 'test ',varchar_column 将显示为 ‘test’,因为 CHAR 类型字段后添加了空格以达到指定的长度,而 VARCHAR 类型字段则只存储了实际的字符串 ‘test’。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值