SQL Server中 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。

由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!

注释
如果没有在数据定义或变量声明语句中指定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个字符。

posted @ 2010-01-13 22:08  dzqabc  阅读(1143)  评论(0编辑  收藏  举报