数据库系统中char,varchar,nchar,nvarchar,text和ntext的区别

char(n)

非 Unicode 字符数据,长度固定,效率较varchar高,输入数据必须是一个长度介于 1 和 8,000 字节之间的数值(这是因为n只能取在1和8000之间,否则报错)。若输入的字符小于指定长度时,它会在后面补空值。若你输入的字符大于指定长度时,它会截去超出的字符。其中1个汉字占2个字节,1个字母或数字占1个字节。

varchar(n)

非 Unicode 字符数据,长度可变,效率较char低。以字节作存储单位,输入数据必须是一个长度介于 1 和 8,000 字节之间的数值(同理)。存储大小为输入数据的字节的实际长度,而不是n个字节。其中1个汉字占2个字节,1个字母或数字占1个字节。

nchar(n)

Unicode 字符数据,长度固定。输入的数据必须是一个长度介于1与4000字符之间的数值(同理)。若输入的字符小于指定长度时,它会在后面补空值。若你输入的字符大于指定长度时,它会截去超出的字符。字节的存储大小是所输入字符个数的两倍。其中汉字和字母数字均占2个字节。

nvarchar(n)

Unicode 字符数据,长度可变。以字符为存储单位,输入的数据必须是一个长度介于1与4000字符之间的数值(同理)。字节的存储大小是所输入字符个数的两倍。其中汉字和字母数字均占2个字节。

text

非Unicode数据,长度可变,以字符为存储单位,最大长度为2^31-1(2,147,483,647)个字符。text无默认值,后面无需指定长度。

ntext

差别同上。

总结:

1.若是仅有字母和数字的数据,选择char、varchar,若是汉字和字母数字组合,可选择nchar、nvarchar。这里的目的是为了节省空间。

2.若定长的数据则选择char、nchar,不定长的可选择varchar、nvarchar。同样这里也为了节省空间。

ps:以下是百度百科关于Unicode的部分解释,希望对理解文章有所帮助。

Unicode(中文名统一码、也称万国码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值