SQL中的char,varchar,nchar,nvarchar的区别

char(n):长度为 n 个字节的固定长度,且非 Unicode 的字符数据,当保存的数据长度不满足设定长度时,会用空值填充;当保存的数据长度超过设定长度时,会自动截取相应长度的字符。
例如:char(n),当你输入的数据长度不到n,会在后面加空值添加到长度为n,当输入的数 据长度超过n,即自动截取长度为n的数据。
优缺点:效率相对更高,但是浪费空间。
varchar(n):长度为 n 个字节的可变长度,且非 Unicode 的字符数据,储存输入数据的实际大小,而不是长度为n的数据。
例如:varchar(n),当你输入的数据长度不到n,会保存输入的实际数据长度。
优缺点:节省空间,但相对效率低。
nchar,nvarchar:它表示存储的是Unicode数据类型的字符。我们知道字符分汉字和英文字符,而英文字符只需要一个字节存储,但汉字需要两个字节存储,英文与汉字同时存在时就容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。

总结: char(n):长度固定,且数据都是英文和数字组成时使用。
varchar(n):长度不固定,且数据都是英文和数字组成时使用。
nchar(n):长度固定,数据中包含中文字符时使用。
nvarchar (n):长度不固定,数据中包含中文字符时使用。
记忆:var是定义变量时使用的关键字,所以有var的就是长度为可变的类型,n是代表Unicode,即有n的就是代表包含中文字符的类型(也可以记忆多了一个n,就多出一个字符,而Unicode即使是英文也是按两个字节算,多出一个字节)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值