【SqlServer】char,varchar,nchar,nvarchar,text,ntext的区别

char和varchar

存储ANSI字符

char

存储定长数据

比如定义char(10),则无论存储的数据多长,都要占用10字节的空间,不足自动补空格,速度快,但是程序处理时需要用trim去除空格

varchar

存储变长数据

比如定义varchar(10),现在存储字符'haha',则需要用到4个字节的空间,但是同时还需要用一个字节空间记录字符使用的空间大小,则实际使用空间为5

nchar和nvarchar 

存储Unicode字符

比char,varchar多个N

在非Unicode中,在英文字符中,一个字符需要一个字节空间存储,但是一个中文字符需要两个字节空间存储,而在Unicode中,无论英文字符还是中文字符,需用占用两个字节空间

N  表示存入数据库时以Unicode格式存储,(SQL-92 标准中的国际语言 (National Language))


总结一下


                数据长度  速度  占用空间   处理字符          
char             定长       快        大         非Unicode
varchar        变长       慢        小         非Unicode
nvhar           定长       快        大             Unicode
nvarchar      变长       慢        小             Unicode

 

如果数据只包含英文和数字,则用char,varchar
如果数据包含中文,法文,西文等,则用nchar,nvarchar

 

这里还有一个问题就是,char和varchar的最大长度为8000,而nchar和nvarchar的最大长度为4000
如果存储的数据长度很大可以用text和ntext,text存储变长的非Unicode字符,最大长度为2^31-1(2,147,483,647)个字符

 

相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页