数据库char,varchar,nchar,nvarchar类型分别有什么区别。

数据库char,varchar,nchar,nvarchar类型分别有什么区别。,第1张

数据库char,varchar,nchar,nvarchar类型区别为:长度不同、字节不同、空格不同。

一、长度不同

1、char类型:char类型的长度固定,占用更多的存储空间。

2、varchar类型:varchar类型的长度不固定,占用更少的存储空间。

3、nchar类型:nchar类型的长度固定,占用更多的存储空间。

4、nvarchar类型:nvarchar类型的长度不固定,占用更少的存储空间。

二、字节不同

1、char类型:char类型所有的字符使用一个字节表示。

2、varchar类型:varchar类型所有的字符使用一个字节表示。

3、nchar类型:nchar类型所有的字符使用两个字节表示。

4、nvarchar类型:nvarchar类型所有的字符使用两个字节表示。

三、空格不同

1、char类型:char类型保存的时候会去掉字符串末尾的空格。

2、varchar类型:varchar类型保存的时候不会去掉字符串末尾的空格。

3、nchar类型:nchar类型保存的时候会去掉字符串末尾的空格。

4、nvarchar类型:nvarchar类型保存的时候不会去掉字符串末尾的空格。

对于程序中的string型字段,SQLServer中有char、varchar、nchar、nvarchar四种类型来对应(暂时不考虑text和ntext),开建立数据库中,对这四种类型往往比较模糊,这里做一下对比。

1.有var前缀的,表示是实际存储空间是变长的,varchar,nvarchar

所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。

2.n表示Unicode字符,即所有字符都占两个字节,nchar,nvarchar

字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。

3.基于以上两点来看看字段容量

char,varchar

最多8000个英文,4000个汉字

nchar,nvarchar

可存储4000个字符,无论英文还是汉字

4.使用(个人偏好)

a.如果数据量非常大,又能100%确定长度且保存只是ansi字符,那么char

b.能确定长度又不一定是ansi字符或者,那么用nchar;

c.对于超大数据,如文章内容,使用nText

d.其他的通用nvarchar


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10068895.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存