sql server 中数据类型区别

SQL Server 数据类型学习
  这些天,需要由Oracle移植到SQL Server,用到了Microsoft 的 Microsoft SQL Server Migration Assistant 2005 for Oracle,用到了数据类型,所以对SQL Server 的数据类型来了个全面的学习,先总结几个关键点,于朋友们分享
The difference between char and nchar  CHAR 是固定长度的字节, VARCHAR 是可变长度的字节, NCHAR UNICODE 编码的固定字符长度。  
 
如: 12345     CHAR(6) 存储为 123456 加一个空格,共 6 个字节。  
         
中国       CHAR(6) 存储为中国加两个空格,共 6 个字节。  
          12345    
VARCHAR(6) 存储为 123456 ,共 5 个字节。  
         
中国       VARCHAR(6) 存储为中国,共 4 个字节。  
  NCHAR(6)
对汉字和半角字符处理时一样的 , NCHAR char 类似,采用 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

你可能感兴趣的:(SQL Server)