天天看点

char varchar nvarchar 的区别

        学习就是不断总结的过程,还记得总结char,varchar和nachar区别是看耿建玲视频的时候,但是,敲完机房的时候就忘记的差不多了,这次在来一次总结。

      一、首先让我们看看char和varchar的区别:

       1.char的长度是固 定的,而varchar的长度是可以变化的, 比如,存储字符串“abc",对于char (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的varchar (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。由于char是以固定长度的,所以它的速度会比 varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!

  2.char的效率比varchar2的效率稍高。

     让我们能看看在数据库中的区别吧

      (1)、首先创建了一个具有一个Char字段和一个VarChar字段的表。它们都设置为大小最大为50.

char varchar nvarchar 的区别

        (2)、给每一个输入相同的测试数据。

char varchar nvarchar 的区别

       (3)、用T-SQL语句找到两个字段的长度

char varchar nvarchar 的区别

       ( 4)、查看两种数据类型的区别

char varchar nvarchar 的区别
char varchar nvarchar 的区别

         这样一看两者的区别就显而易见了。

    二、vachar和nvarchar 

    nvarchar(n)

    包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。

    它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。  

所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar        

     varchar[(n)]  

    长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。

        这次的总结到这里吧。。

继续阅读