char、nchar、varchar、nvarchar 的区别
【摘要】
请看表:
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)