SQLSERVER中char、nchar、varchar、nvarchar的区别和常
⽤场景举例
⼀、char 和varchar的区别和应⽤:
unicode码和ascii码区别1.char和varchar的区别:
char :指定长度,如果⼀个数据实际长度⽐设定长度短,那么它将按照设定(最长)长度储存,不⾜部分,填补空格。适⽤于固定长度的字段,如性别、⼿机号等。
varchar :指定最⼤长度,但该长度可变,即如果数据的实际长度⽐设定长度短,那么它将按照实际长度储存,⽽不占⽤剩余的空间。 适⽤于⾮固定长度的字段,如姓名、城市名等。
2.带“n”与不带“n”:
带“n”可以理解为兼容unicode 编码和⾮unicode 编码,故⽽更适⽤兼容不同类型的字符。本⼈在项⽬中⼀直都是⾸选nvachar类型。若不带“n”,则意味着只能存放unicode编码的字符。
⼩知识: 什么是unicode编码?
在Unicode中:⽆论英⽂还是⽇⽂中⽂都是占两个编码位置(双字节),现在的操作系统⽤的都是Unicode编码,所以这时中⽂就不⽤进⾏转换为单字节进⾏运⾏了,效率就提⾼了(Unicode⼏乎⽀持所有的语⾔编码)。区别于ASCII编码:英⽂字符占⼀个编码位置(单字节),⽽中⽂占两个位置(双字节)。