SQL SERVER char和varchar数据类型的区别

 我来答
千锋教育
2016-01-12 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

  数据类型区别如下:

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

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

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

Baby_原來
推荐于2016-07-03 · TA获得超过3402个赞
知道大有可为答主
回答量:1535
采纳率:94%
帮助的人:508万
展开全部
Char(n)是长度为n个字节的定长的非unicode的字符数据。N为一个介于1到8000之间的值。其存储大小为输入数据的实际字节长度,而不是n个字节。
如果输入的实际字节长度少于n,那么其他位置会被空格填充。在数据存储中英文字母和数字占一个字节,汉字占两个字节。那么char(n)最多可以存储n个英文字母或数字,或者n/2个汉字。 Varchar(n)是长度为n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于1 和8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。注意它和char(n)的区别是char(n)是定长的,varchar(n)是变长的。

如果输入的字符的实际字节长度少于n,那么它的长度就是实际输入的字节长度。在数据存储中英文字母和数字占一个字节,汉字占两个字节。
Varchar(n)最多可以存储n个英文字母或数字,或者n/2个汉字。
Char(n)最多可以存储n个英文字母或数字,或者n个汉字。

在数据检索中,一般来说char型字段的数据是最快的,varchar,nvarchar型字段其次。 在所存数据长度不一的情况下,varcahr型字段所占空间最少,char,nvarchar其次。
那么到底在什么样的情况下使用什么样的数据类型那?
如果所存数据长度基本一致,建议使用char型。这样检索速度快,但是提取的时候要注意用trim()函数剔除所存数据两边的空格。 如果所存数据长度差异较大,可以使用varchar或者nvarchar。如果想较好的支持多语言的话,最好使用nvarchar。使用nvarchar可以减少字符转换问题,防止某些情况下乱码的出现。
Char(n) Varchar(n) Nvarchar(n)
N 最大值 8000 8000 4000
数据长度 固定(不足空格填充) 可变(实际数据长度) 可变(实际数据长度)
可存储最多英文(数字) 8000 8000 4000
最多汉字数 4000 4000 4000
英文(数字)所占字节 1 1 2
汉字所占字节 2 2 2
检索速度 快 慢 慢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式