SQL Server 数据类型学习

  这些天,需要由Oracle移植到SQL Server,用到了Microsoft 的Microsoft SQL Server Migration Assistant 2005 for Oracle,用到了数据类型,所以对SQL Server 的数据类型来了个全面的学习,先总结几个关键点,于朋友们分享
The difference between char and nchar  CHAR是固定长度的字节,VARCHAR是可变长度的字节,NCHARUNICODE编码的固定字符长度。  
 
如:12345     CHAR(6)存储为123456加一个空格,共6个字节。  
         
中国       CHAR(6)存储为中国加两个空格,共6个字节。  
          12345    
VARCHAR(6)存储为123456,共5个字节。  
         
中国       VARCHAR(6)存储为中国,共4个字节。  
  NCHAR(6)
对汉字和半角字符处理时一样的, NCHARchar类似,采用Unicode标准字符集,每个字符占用两个字节空间。
The difference between Char and Varchar         char数据类型用来存储指定长度的定长非统一编码型的数据。当定义一列为此类型时,你必须指定列长。当你总能知道要存储的数据的长度时,此数据类型很有用。例如,当你按邮政编码加4个字符格式来存储数据时,你知道总要用到10个字符。此数据类型的列宽最大为8000 个字符;

varchar数据类型,同char类型一样,用来存储非统一编码型字符数据。与char 型不一样,此数据类型为变长。当定义一列为该数据类型时,你要指定该列的最大长度。它与char数据类型最大的区别是,存储的长度不是列长,而是数据的长度

The difference between Varchar and Nvarchar  varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。
   nvarchar(n)
 
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 4,000 之间。字节的存储大小是所输入字符个数的两倍。

两字段分别有字段值:我和coffee
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。
如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar


   就这些了,呵呵。
posted @ 2008-04-17 15:29  Eric zhou  阅读(1134)  评论(2编辑  收藏  举报