大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说char、vchar、nvarchar 的区别[通俗易懂],希望您对编程的造诣更进一步.
Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示
如果还为了这个纠结,就直接看看后面的解说,做决定吧。
一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的。
sql server中的varchar和Nvarchar有什么区别?
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。
nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。
两字段分别有字段值:我和coffee
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。
如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar
varchar(10)与nvarchar(10)
前者是非unicode型,存储字符按1个算(内部空间存储占1字节),存储汉字的话按2个算,
就是可以存10个字符或者5个汉字
后者是unicode型,存储什么都是按1个算(内部空间存储占2字节),
就是可以存10个字符或10个汉字
varchar(10)与nvarchar(10)就是分别占10个字节和20个字节
———————————————————————————————————————————————————
char(n) | 定长 | 索引效率高 程序里面使用trim去除多余的空白 | n 必须是一个介于 1 和 8,000 之间的数值,存储大小为 n 个字节 |
varchar(n) | 变长 | 效率没char高 灵活 | n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节 |
text(n) | 变长 | 非Unicode数据 | |
nchar(n) | 定长 | 处理unicode数据类型(所有的字符使用两个字节表示) | n 的值必须介于 1 与 4,000 之间。存储大小为 n 字节的两倍 |
nvarchar(n) | 变长 | 处理unicode数据类型(所有的字符使用两个字节表示) | n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零 |
ntext(n) | 变长 | 处理unicode数据类型(所有的字符使用两个字节表示) |
来源:https://www.cnblogs.com/net5x/articles/9592295.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10305.html