数据库中char和varchar的区别

 我来答
仁昌爱娱乐
高粉答主

2019-11-16 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459844

向TA提问 私信TA
展开全部

数据库中char和varchar的区别为:长度不同、效率不同、存储不同。

一、长度不同

1、char类型:char类型的长度是固定的。

2、varchar类型:varchar类型的长度是可变的。

二、效率不同

1、char类型:char类型每次修改的数据长度相同,效率更高。

2、varchar类型:varchar类型每次修改的数据长度不同,效率更低。

三、存储不同

1、char类型:char类型存储的时候是初始预计字符串再加上一个记录字符串长度的字节,占用空间较大。

2、varchar类型:varchar类型存储的时候是实际字符串再加上一个记录字符串长度的字节,占用空间较小。

roclee81
2008-04-09 · TA获得超过227个赞
知道答主
回答量:10
采纳率:0%
帮助的人:4.6万
展开全部
char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:

char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).

在MySQL中用来判断是否需要进行对据列类型转换的规则

1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.
2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.
3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.
例外:长度小于4个字符的char数据列不会被转换为varchar类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
憨憨forver
推荐于2017-11-22 · TA获得超过201个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:55.2万
展开全部
在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下选择塔门的理由。

首先明确的是,char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的
是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时
候,char类型的要用trim()去掉多余的空格,而varchar是不需要的,尽管如此,char的存取数度还是要比varchar要快得多,因为其
长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间
效率,而varchar是以空间效率为首位的。再者,char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而
varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ewolfe
2008-04-25 · TA获得超过246个赞
知道答主
回答量:21
采纳率:0%
帮助的人:23万
展开全部
char和varchar都是字符串类型的
char固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。
所占存储空间为你定义时的大小。
数据量较大时以char字段为查询条件时查询得快一些.

varchar可变长度的非 Unicode 数据,最长为 8,000 个字符。
所占存储空间为实际大小(在不超过你定义长度时)
如果要存储的字段不是定长的.用varchar较好一些。

所以,对经常修改(或插入)的字段选用char,而不常修改的建议用varchar
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
m2ah
2018-07-06 · 知道合伙人互联网行家
m2ah
知道合伙人互联网行家
采纳数:9119 获赞数:28049
毕业于软件技术专业,12年网站建设程序开发经验,多家知名公司网站维护专家,百度资深行家。

向TA提问 私信TA
展开全部

  数据类型区别如下:

  1. char表示的是固定长度,

  2. varchar表示的是实际长度的数据类型

  比如:如果是char类型,当你输入字符小于长度时,后补空格;而是varchar类型时,则表示你输入字符的实际长度

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式