Char和varchar简单介绍

1. 数据长度

1) char(最大长度255个字节)

长度固定(字段存入数据长度始终等于字段长度)

2) varchar(最大长度65535个字节)

可变长度,存入数据长度为N个字节,则实际使用了N+1(255以上长度则+2)个字节的空间,多出来的1字节是用来存储数据实际长度。

  • 存入数据对比
    • 存入"ab"
      • char查询出"ab"
      • varchar查询出"ab"
    • 存入"ab "ab后面有两个空格,
      • char查询出"ab"
      • varchar查询出"ab "

解析:

​ 在入库时,数据库会自动在ab后面添加两位空格,让入库的数据长度保证等于4 char(4) ,这种操作很容易理解,但是如果你去数据表里面去查这条数据,会发现表中数据并没有空格,所以可以推断出这里是逻辑追加,所以在查询数据的时候会并不会出现引擎自动添加的空格。


2. 实操(技术一定要**实操**)

1)无空格数据

先创建一张表

create table cv(c char(4), v varchar(4));

插入数据

insert into cv values("ab", "ab");

查询数据

select concat('(', c, ')') AS c, concat('(', v, ')') AS v from cv;

结果

image-20191012152503483

结果中char和varchar均查出来为无空格的ab

####2)有空格数据

插入数据

insert into cv values("ab  ", "ab  ");

查询数据

select concat('(', c, ')') AS c, concat('(', v, ')') AS v from cv;

结果

image-20191012152809508

结果中可以看出,char类型将数据后面的空格自动去掉了,varchar则保留了所有的空格

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值