SQL中的char、varchar、nvarchar

    由于最近在做机房的时候数据库中出现了许多错误,所以今天总结一下数据库中数据类型的区别。

      1.char

      固定长度,会指定出有多少个字符,比如char(10)就是有十个字符。

      2.varchar

      是长度可变的字符,区分中英文,中文占两个字节,英文占一个字节。

      3.nvarchar

      是长度可变的字符,不区分中英文,每个字符都占两个字节。

    一、char与varchar的区别:

    varchar比char节省空间,char长度是固定的,而varchar的长度是可以变化的,比如存储字符串“qwer”,对于char(10),表示你存储的字符会占用10个字节,包含6个空字符。而使用varchar(10),只会占用4个字节的长度,10只是最大值,当存储的字符小于10时,会按照实际的长度来存储,节省了不少空间。

    varchar比char效率差一些。

    二、varchar与nvarchar的区别:

    varchar(n)长度为n个字节的可变长度的数据,n的范围是1-8000之间。存储大小是输入数据的字节的实际长度,而不是n。

    nvarchar(n)包含n个字符的可变长度的数据,n的范围是1-4000之间。存储大小是输入字符个数的两倍。

    也就是说在varchar类型中,一个英文字母会占用一个字节,而一个汉字会占用两个字节。但是在nvarchar中,不管是英文还是中文,都会占用两个字节。

    比如:我是abc,在varchar中占用2*2+3=7个字节的存储空间,在nvarchar中占用2*5=10个字节的存储空间。

    举个例子,varchar(10)中可以输入10个字母,也可以输入5个汉字。nvarchar(10)中可以输入10个字母,也可以输入10个汉字,但是最多只能输入10个。

    利用好数据类型可以让我们的数据库更规范,代码中遇到的问题也会变少。

    

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 39
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值