关于SQL Server 2008创建表时的数据类型!!!!

求高人帮忙解释下!!!
char
Varchar
nchar
nvarchar
这几种数据类型是什么意思??主要用于什么???

小弟我分不多,希望见谅!!

nchar(n)

包含 n 个字符的固定长度Unicode字符数据。n 的值必须介于1 与 4,000 之间。存储大小为 n 字节的两倍。nchar 在 SQL-92 中的同义词为 national char 和 national character。

nvarchar(n)

包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar 在 SQL-92 中的同义词为 national char varying 和 national character varying。

注释

如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。

如果希望列中所有数据项的大小接近一致,则使用 nchar。

如果希望列中数据项的大小差异很大,则使用 nvarchar。

使用 nchar 或 nvarchar 的对象被赋予数据库的默认排序规则,除非使用 COLLATE 子句赋予特定的排序规则。

SET ANSI_PADDING OFF 不适用于 nchar 或 nvarchar。SET ANSI_PADDING ON 永远适用于 nchar 和 nvarchar。

二、char 和 varchar

固定长度 (char) 或可变长度 (varchar) 字符数据类型。

char[(n)]

长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。

varchar[(n)]

长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。

注释

如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。

将为使用 char 或 varchar 的对象被指派数据库的默认排序规则,除非用 COLLATE 子句另外指派了特定的排序规则。该排序规则控制用于存储字符数据的代码页。

支持多语言的站点应考虑使用 Unicode nchar 或 nvarchar 数据类型以尽量减少字符转换问题。如果使用 char 或 varchar:

如果希望列中的数据值大小接近一致,请使用 char。

如果希望列中的数据值大小显著不同,请使用 varchar。

如果执行 CREATE TABLE 或 ALTER TABLE 时 SET ANSI_PADDING 为 OFF,则一个定义为 NULL 的 char 列将被作为 varchar 处理。

当排序规则代码页使用双字节字符时,存储大小仍然为 n 个字节。根据字符串的不同,n 个字节的存储大小可能小于 n 个字符。

总结:

1、 varchar:

可变长度的非 Unicode 数据,最长为 8,000 个字符。

2、nvarchar:

可变长度 Unicode 数据,其最大长度为 4,000 字符。

3、char:

固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

4、nchar

固定长度的 Unicode 数据,最大长度为 4,000 个字符。

5、 char和varchar都是字符串类型的

用Unicode编码的字符串,结果是字符的整数值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-23
char:字段类型char是指 使用指定长度的固定长度表示的字符串;比如char(8),则数据库会使用固定的8个字节来存储数据 ,不足8为的字符串在其后补空字符;

varchar:VARCHAR是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。因此,对于那些难以估计确切长度的数据对象来说,使用VARCHAR数据类型更加明智。VARCHAR数据类型所支持的最大长度也是255个字符。

Nchar:其定义形式为Nchar(n)。它与Char数据类型类似,不同的是Nchar数据类型n的取值为1~4000。Nchar数据类型采用Unicode标准字符集,Unicode标准用两个字节为一个存储单位,其一个存储单位的容纳量就大大增加了,可以将全世界的语言文字都囊括在内,在一个数据列中就可以同时出现中文、英文、法文等,而不会出现编码冲突。

Nvarchar:其定义形式Nvarchar(n)。它与Varchar数据类型相似,Nvarchar数据类型也采用Unicode标准字符集,n的取值范围为1~4000。

比较常用的是char 和varchar,后两个不常用。
相似回答