char、nchar、varchar、nvarchar 的区别

举报
小小张自由--张有博 发表于 2021/11/23 23:47:50 2021/11/23
【摘要】 请看表: char(n)定长储存ANSI字符不足的补英文半角空格索引效率高,程序里面使用trim去除多余空白n必须是介于1和8000之间的数值,储存大小为n个字节nchar(n)定长储存Unicode字符不足的补英文半角空格处理unicode数据类型(所有的字符使用两个字节表示)n必须是介于1和4000之间的数值,储存大小为n字节的两...

请看表:

char(n) 定长 储存ANSI字符 不足的补英文半角空格 索引效率高,程序里面使用trim去除多余空白 n必须是介于1和8000之间的数值,储存大小为n个字节
nchar(n) 定长 储存Unicode字符 不足的补英文半角空格 处理unicode数据类型(所有的字符使用两个字节表示) n必须是介于1和4000之间的数值,储存大小为n字节的两倍
varchar(n) 变长 储存ANSI字符 根据数据长度自动变化 效率没char高  灵活 n必须是介于1和8000之间的数值,储存大小为输入数据字节的实际长度,而不n个字节。
nvarchar(n) 变长 储存Unicode字符 根据数据长度自动变化 处理unicode数据类型(所有的字符使用两个字节表示) n的值必须介于1与4000之间。储存大小为n字节的两倍。

技巧:

确定了存储的数据长度,而且不包括中文,可以选择char类型。

确定了存储的数据长度,但可能包括中文,可以选择nchar类型。

不确定存储的数据长度,存储只有英文、数字的最好用varchar。

不确定存储的数据长度,也有可能有中文,可以选择nvarchar类型。

如果还为了这个纠结,就直接看看后面的概括吧。

一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的。 

拓展:

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。,0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。

 如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示

 

文章来源: blog.csdn.net,作者:小小张自由—>张有博,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/promsing/article/details/103810255

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。