您的位置:首页 > 其它

char varchar 有什么区别

2009-09-05 14:26 246 查看
nchar 和 nvarchar

nchar 是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。

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。

varchar 对每个英文(ascii)字符都占用2个字节,对一个汉字也只占用两个字节

char 对英文(ascii)字符占用1个字节,对一个汉字占用2个字节

varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"

而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,

就是把它填满为100个字节)。

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

去掉!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐