900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MySQL的char与varchar:类型长度 记录字节 截取报错 保存trim 数据校验 存储占用

MySQL的char与varchar:类型长度 记录字节 截取报错 保存trim 数据校验 存储占用

时间:2020-06-24 04:55:10

相关推荐

MySQL的char与varchar:类型长度 记录字节 截取报错 保存trim 数据校验 存储占用

1.类型范围

2.占用字节

CHAR是定长字符串类型,不论其存放的字符串长短,统一都会占用m字节;

VARCHAR是变长字符串类型,在声明时虽然指定其长度m,仅指其能存放字符串的最长长度;

存放的字符串长度不超过255,VARCHAR会额外申请一个字节用于存放实际字符串的长度;

存放的字符串长度如超过255,会额外申请两个字节的空间用于存放实际字符串的长度;

3.截取报错

如果sql_mode未使用严格模式,则会如上表所示的样子,按最大长度截取,但是会产生警告;

如果sql_mode设置了严格模式,则会报错,如下图所示

4.保存过滤:char自动trim varchar不会

Char类型的数据在存储时会自动裁剪右侧的空格串,而VARCHAR则不会

5.数据校验

CHAR、VARCHAR、TEXT类型在进行比较时,都会自动裁剪后侧的空格串,进行比较

如果需要将右侧的空格字符串参与比较,使用like即可,如下图所示

6.存储占用

char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;

varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节。

7.应用

提前知道需要存放的数据内容,如邮政编码、彩票号码等固定位数的字符串,则可以使用char类型;

如不能确定长度的情况下,应该使用varchar;

在使用注意不超过最大长度和不到最大长度时两种类型的不同处理;

对于字符串比较时的右侧空格串裁剪规则要引起注意;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。