SQL Server中定长char(n)和变长varchar(n)有什么区别,谁能告诉我啊?

SQL Server中定长char(n)和变长varchar(n)有什么区别,谁能告诉我啊?

VARCHAR 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
CHAR 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
VARCHAR 的类型不以空格填满,比如VARCHAR(100),但它的值只是"QIAN",则它的值就是"QIAN"
而CHAR 不一样,比如CHAR(100),它的值是"QIAN",而实际上它在数据库中是"QIAN "(QIAN后共有96个空格,
就是把它填满为100个字节)。

由于CHAR是以固定长度的,所以它的速度会比VARCHAR快得多!但程序处理起来要麻烦一点,要用TRIM之类的函数把两边的空格去掉!

[上面的理论是从网上copy来的]

至于用法如下:
在一些长度变化不是很大的字段应该用char类型,而对长度变化很大的字段应该用varchar类型了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-10-26
char和varchar区别在于字符的长短char是10个长度varchar是50个长度
第2个回答  推荐于2016-10-12
char(n)是定长格式,格式为char(n)的字段固定占用n个字符宽度,如果实际存放的数据长度超过n将被截取多出部分,如果长度小于n就用空字符填充。

varchar(n)是变长格式,这种格式的字段根据实际数据长度分配空间,不浪费对于的空间,但是搜索数据的速度会麻烦一点。

一般地说,只要一个表有一个字段定义为varchar(n)类型,那么其余用char(n)定义的字段实际上也是varchar(n)类型。

如果你的长度本身不长,比如就3~10个字符,那么使用char(n)格式效率比较高,搜索速度快。但是如果有的数据很长,有的数据有比较短,比如注册用户的简介这样的字段,实在没有办法,而且很在乎浪费的空间,那么就用varchar(n)格式。本回答被提问者采纳
相似回答