雨落天涯

问花花不语,为谁落,为谁开。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

      今天早上把SQL 2000视频系统数据类型这一部分看完了,但是对下面这几个概念还是有点懵懵懂懂,所以试着去简单的总结它们之间的区别!

   一、Char和Varchar

    Char是固定长度字符型,Varchar可变长度字符型。这两者有什么区别呢?

   比如说我们定义Char(10),如果我们插入abc,即使不足10个字节,数据库也会在abc的后面添加7个空格来不足10个字节。如果,我们插入的超过了10个字节,那么数据库就会将多余的截掉!也就是说,Char的数据长度等于定义的长度!

   另外,Char是区分中英文的,中文在Char中是占用两个字节,而英文占一个,所以Char10)只能是10个字母或5个汉字!

   Varchar的长度是可变的,比如说我们定义了Varchar10),当我们插入abc的时候,在数据库中只占3个字节!10只是最大值,当你存储的字符小于10时,它不会以空格来填充!也就是说,Varchar的数据长度小于或等于你定义的长度!

      Char与Varchar 它们存储的最大范围都是8000,其中,Varchar最主要的作用就是比Char节省空间,但在效率上稍微比Char差一些,即要想获得效率,就必须牺牲一些空间,就是数据库设计上经常说的“以空间换效率”。但并不是说,Varchar就一定比较好,任何事物都是有两方面的,所以在使用什么时候使用Char和Vchar,还需要正确对待!

  二、Nchar和Nvarchar

    Nchar和Nvarchar都是针对Unicode的标准,两个字节作为一个存储单位,主要是存储容量大的,比如说我们的汉字!同时它们存储的最大范围是4000,它们两者的区别,同样是一个是固定长度的,一个是非固定长度的。

posted on 2012-06-07 07:20  雨落天涯  阅读(212)  评论(0编辑  收藏  举报