varchar(5000)能存多少汉字?多少英文?

storm0325 2011-11-23 03:51:32
如题。
...全文
2116 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
老张一笑 2011-11-25
  • 打赏
  • 举报
回复
nvarchar 如果是一个英文也照样占了2个字节.
如果都在国内用,尽量用varchar
轻狂小疯 2011-11-25
  • 打赏
  • 举报
回复
汉子占2个字节 英文占一个字节!
your_baobei 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mking0412 的回复:]

Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后……
[/Quote]终于明白了他们的区别
guang_hui_yang 2011-11-25
  • 打赏
  • 举报
回复
2500汉字、5000英文
gaoz 2011-11-25
  • 打赏
  • 举报
回复
为什么用varchar(5000)? 既然是文本型,就不好控制多少,存取也不会太频繁!干脆就用varchar(max),如果有汉字就nvarchar(max),但是需要注意的是nvarchar效率,如果100万表,用like查的话会很慢。
如果非得强求速度,那就得用ntext类型,但Ntext却不能用like查出来,必须用到全文索引!
MKing0412 2011-11-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 51crack 的回复:]
一楼:网上那么多,你非要引用一个错的
[/Quote]

悲催了...
哎...

I'm sorry.
51Crack 2011-11-23
  • 打赏
  • 举报
回复
一楼:网上那么多,你非要引用一个错的
youzelin 2011-11-23
  • 打赏
  • 举报
回复 1
不要纠结多少字节,其实 varchar 根本不能正确显示中文的,请用 NVarchar
cjh200102 2011-11-23
  • 打赏
  • 举报
回复
楼上很详细。
baizongjie 2011-11-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mking0412 的回复:]
Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共……
[/Quote]

汉字占两个字节
字母占一个字节、八位
baizongjie 2011-11-23
  • 打赏
  • 举报
回复
汉字占两个字节
字母点一个字节、八位

qldsrx 2011-11-23
  • 打赏
  • 举报
回复
2500汉字、5000英文
MKing0412 2011-11-23
  • 打赏
  • 举报
回复
Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,
就是把它填满为100个字节)。

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

资料引用:http://www.knowsky.com/1997.html

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧