sqlserver的nvarchar和varchar,数据库varchar和nvarchar

sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别

Varchar是长度为N个字节的变长非Unicode字符数据,nvarchar包含N个字符的变长Unicode字符数据。

可变字符

可变长度为N字节的非Unicode字符数据。n必须是1到8,000之间的数字。大小存储为输入数据的实际字节长度,而不是N字节。

nvarchar(n)

包含n个字符的可变长度Unicode字符数据。n的值必须介于1和4,000之间。字节的存储大小是输入字符数的两倍。

两个字段具有字段值:I和coffee。

那么varchar字段占用22 ^ 6=10字节的存储空间,而nvarchar字段占用82=16字节的存储空间。

如果字段值只有英文,则可以选择Varchar,如果有更多的双字节字符(中文、韩文等),则使用nvarchar。)字段值中。

以上是总结介绍。通过上面的介绍,你就可以知道了。

Varchar(4)可以输入4个字母或两个汉字。

NVAR (4)可以输入四个汉字或四个字母,但最多只能输入四个。

char、varchar、nchar、nvarchar的区别

对于程序中的字符串字段,SQLServer中有四种类型:char、varchar、nchar和nvarchar(暂时不考虑text和ntext)。在数据库的建立中,这四种类型往往是模糊的。这里有一个对比。

固定或可变长度

所谓定长,就是长度固定。当输入数据的长度没有达到规定长度时,会自动用英文空格填充,使长度达到相应的长度;如果有var前缀,则意味着实际存储空间是可变的。比如varchar,nvarchar变长字符数据不会用空格填充。例外情况是文本存储可变长度字符。

Unicode或非unicode

在数据库中,英文字符只需要一个字节就够了,但中文字符和许多其他非英文字符需要两个字节。如果英文和中文同时存在,由于占用空间不同,容易造成混淆,导致字符串乱码。Unicode字符集就是为了解决字符集的不兼容而应运而生的。它的所有字符都用两个字节表示,也就是英文字符也用两个字节表示。前缀N表示Unicode字符,如nchar、nvarchar,它们使用Unicode字符集。

基于以上两点看场能。

Char,varchar,最多8000个英文和4000个中文字符。

Nchar,nvarchar可以存储4000个字符,无论是英文还是中文。

使用(个人偏好)

如果数据量非常大,可以100%确定长度,并且只保存ansi字符,然后是char

可以确定长度而不一定是ansi字符或,那么使用nchar;

对于非常大的数据,比如文章内容,使用nText

其他通用nvarchar

char、varchar、nchar和nvarchar特征的比较

用CHAR存储定长数据很方便,CHAR域上的索引效率水平高。比如你定义了char(10),无论你存储的数据是否达到10字节,都要占用10字节的空间。

可变长字符串

存储变长数据,但存储效率没有CHAR高。如果一个字段的可能值长度不固定,我们只知道不能超过10个字符。定义为VARCHAR(10)最划算。VARCHAR类型的实际长度是其值1的实际长度。为什么是“1”?该字节用于存储实际使用的长度。

考虑到空间,用varchar比较合适;考虑到效率,用char比较合适。关键是要根据实际情况找到取舍点。

文本

文本存储可变长度的非unicode数据,最大长度为2 ^ 31-1(2,147,483,647)个字符。

NCHAR、NVARCHAR、NTEXT

这三种和前三种相比名字里多了个‘n’。与char和varchar相比,nchar和nvarchar可以存储多达4000个字符,无论是英文还是中文。Char和varchar最多可以存储8000个英文字符和4000个中文字符。可以看出,使用nchar和nvarchar数据类型时,不用担心输入的字符是英文还是中文,比较方便,但存储英文的数量有所损失。

所以一般来说,如果包含汉字,就用nchar/nvarchar,如果是纯英文和数字,就用char/varchar。

sqlserver的nvarchar和varchar,数据库varchar和nvarchar