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

上次程序出错是因为在数据库中定义数据类型是定义错了,判断时一直是错误的,接下类我就查了查他们之间的区别,做了整理,希望自己以后可以记清楚这些之间的区别,在应用的时候能分清楚。

对于程序中的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数据。

本文出自 “兰亭醉美” 博客,谢绝转载!

你可能感兴趣的:(数据库,字符串,程序,汉字,英文)