Sql 中var、 nchar 、varchar、nvarchar 详解

##char(n) :

是定长的,当我们输入的字符小于我们设置的长度n时,他就在在后面补空值,当我们输入的字符大于设置的长度n时,他就会截取超出的字符。

##varchar(n):

最大长度为n的可变字符串,而且是非unicode字符数据,存储大小为输入数据的字节的实际长度,而不是n个字节

##Char(n) 和 varchar(n)对比 ::

char: 存储定长数据很方便,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占10个字节的空间。

Varchar。 存储变长字节,但是存储效率没有 char 高

如果从空间的优势上选: varchar

如果从效率的优势上选: char

##Nchar() Nvarchar() :

它们的前面多了个“N”,它表示存储的是Unicode 数据类型的字符

目的:

在非Unicode情况下一个英文字符需要一个字节,而一个汉字需要俩个字节存储,这时候容易造成英文和汉字同时存在,导致混乱,这时候为了防止这种事情发生,我们就使用了 Unicode 数据类型

在Unicode 中 一个英文和一个汉字都需要使用俩个字节存储。

##对比nvarchar() 和 varchar() :

他们的不同在于他们的存储方式

Varchar()按字节存储

例如:  varchar(6)  
我们可以存储 “哈哈哈”  或者“abcdef”  

Nvarchar()按字符存储

例如:Nvarchar(6) 
可以存储“哈哈哈” 或者 “abc”  

猜你喜欢

转载自blog.csdn.net/qq_30631063/article/details/81810503