在多数的情况下不同的类型选择针对的操作以及办事效率不一样。        
例如:
           varchar(1999)==varchar(2000)吗?或者        MYSQL:
BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据.貌似,跟2005的varbinary 很像吧!! 他们的区别以及有图?同时,使用server2000执行条语句进行判断?如果,有一个汉子“中” 存储在user_varchar varchar(20)字段中 。

一个汉字"中" 存储在user_char char(20) 字段中 。     使用SQL也好存储也罢? 那个更快一些为什么?前提,不考虑所使用的什么类型服务器。

解决方案 »

  1.   

    一个习惯性的问题一般习惯用 varchar
      

  2.   

    nchar(n): 
    包含n个字符的固定长度Unicode字符数据。n的值必须介于1与4,000之间。存储大小为n字节的两倍。nchar在SQL-92中的同义词为nationalchar和nationalcharacter。
    nvarchar(n):
    包含n个字符的可变长度Unicode字符数据。n的值必须介于1与4,000之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar在SQL-92中的同义词为nationalcharvarying和nationalcharactervarying。
    注意:
    1. 如果没有在数据定义或变量声明语句中指定n,则默认长度为1。如果没有使用CAST函数指定n,则默认长度为30。
    2. 如果希望列中所有数据项的大小接近一致,则使用nchar。
    3. 如果希望列中数据项的大小差异很大,则使用nvarchar。
    4. 使用nchar或nvarchar的对象被赋予数据库的默认排序规则,除非使用COLLATE子句赋予特定的排序规则。
    5. SETANSI_PADDINGOFF不适用于nchar或nvarchar。SETANSI_PADDINGON永远适用于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中的同义词为charvarying或charactervarying。
    注意:
    1. 如果没有在数据定义或变量声明语句中指定n,则默认长度为1。如果没有使用CAST函数指定n,则默认长度为30。
    2. 将为使用char或varchar的对象被指派数据库的默认排序规则,除非用COLLATE子句另外指派了特定的排序规则。该排序规则控制用于存储字符数据的代码页。
    3. 支持多语言的站点应考虑使用Unicodenchar或nvarchar数据类型以尽量减少字符转换问题。
    4. 如果使用char或varchar:
     如果希望列中的数据值大小接近一致,请使用char。
     如果希望列中的数据值大小显著不同,请使用varchar。
     如果执行CreateTABLE或AlterTABLE时SETANSI_PADDING为OFF,则一个定义为NULL的char列将被作为varchar处理。
    5. 当排序规则代码页使用双字节字符时,存储大小仍然为n个字节。根据字符串的不同,n个字节的存储大小可能小于n个字符。
                                                                                 多多贴哈