这些天,需要由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
就这些了,呵呵。