您的位置:首页 > 数据库

数据库中nchar,nvarchar,char,varchar的区别

2013-10-12 15:11 375 查看
上次程序出错是因为在数据库中定义数据类型是定义错了,判断时一直是错误的,接下类我就查了查他们之间的区别,做了整理,希望自己以后可以记清楚这些之间的区别,在应用的时候能分清楚。
对于程序中的string类型,SQLServer数据库中有char、varchar、nchar、nvarchar、text、ntext这几种类型来对应,在选择应用的时候我们要根据实际情况来选择合适的类型。下面我们就来看看他们之间的区别:
1:定长:定长就是长度固定的,当输入的长度不够时就会用英文空格在其后自动填充,使长度达到设定的长度的字符串类型。
char:对英文(ASCII)占用一个字节,对汉字占用两个字节,存储定长数据很方便,char字段上的索引效率很高。是固定长度的。
nchar:对一个英文字符和一个汉字都占用两个字节,是双字节存储,也是固定长度。
2:变长:变长字符不会以空格填充。
varchar:单字节存储,英文占用一个字节,汉字占用两个字节,存储是变长的。
nvarchar:双字节存储,对一个英文字符和一个汉字都占用两个字节,存储是变长的。
text和你ntext都是变长存储的,不同的是ntext是双字节存储的。
所以一般来说,有汉字的存储的存储的时候,用nchar/nvarchar,只有英文字符和数字的时候用char/varchar。
text存储可变长度的非Unicode数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息