char和nchar有什么区别啊?

如题所述

char 和 varchar 固定长度 (char) 或可变长度 (varchar) 字符数据类型。 nchar 根据 unicode 标准所进行的定义,用给定整数代码返回 unicode 字符。
char是固定长度的字节,varchar是可变长度的字节,nchar是unicode编码的固定字符长度。 如:12345 在char(6)存储为123456加一个空格,共6个字节。 中国 在char(6)存储为中国加两个空格,共6个字节。 12345 在varchar(6)存储为123456,共5个字节。 中国 在varchar(6)存储为中国,共4个字节。 nchar(6)对汉字和半角字符处理时一样的,即可以存储6个汉字,也可以存储6个字母 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。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-26
nchar 是固定长度 Unicode 数据的数据类型 使用 UNICODE UCS-2 字符集。
中文使用两个字节,对于可以用一个字节就表示的英文字符,采用了高位补0的方式凑足2位
第2个回答  推荐于2017-05-28
char 类型是一个字节 char(8)只能存8字母
nchar 类型是双字节 nchar(8)能存8个汉字
varchar 类型是可变的、即如果 varchar(8)你只存了一个字母、在内存中只占一个字节
char 类型如果 char(8)你只存了一个字母、在内存中也占8个字节
本回答被网友采纳
第3个回答  2011-08-24
多了一个N
相似回答