黑马程序员技术交流社区
标题:
varchar nvarchar和char(n)的区别
[打印本页]
作者:
宋超
时间:
2012-3-23 14:24
标题:
varchar nvarchar和char(n)的区别
varchar nvarchar和char(n)的区别?
作者:
韩迎龙
时间:
2012-3-23 15:01
Char(n)是长度为n个字节的定长的非unicode的字符数据。N为一个介于1到8000之间的值。其存储大小为输入数据的实际字节长度,而不是n个字节。如果你输入的实际字节长度少于n,那么其他位置会被空格填充。在数据存储中英文字母和数字占一个字节,汉字占两个字节。那么char(n)最多可以存储n个英文字母或数字,或者n/2个汉字。
(2). Varchar(n)是长度为n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于1 和8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。
区别是:char(n)是定长的,varchar(n)是变长的。
(3). Nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍. 在数据存储中英文字母,数字,汉字都是占两个字节。
注:如果你所存数据长度基本一致,建议使用char型。这样检索速度快,但是提取的时候要注意用trim()函数剔除所存数据两边的空格。 如果你所存数据长度差异较大,可以使用varchar或者nvarchar。如果你想较好的支持多语言的话,最好使用nvarchar。使用nvarchar可以减少字符转换问题,防止某些情况下乱码的出现。
作者:
孙树迁
时间:
2012-3-23 15:06
char(n) 定长 索引效率高 程序里面使用trim去除多余的空白 n 必须是一个介于 1 和 8,000 之间的数值,存储大小为 n 个字节
varchar(n) 变长 效率没char高 灵活 n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节
text(n) 变长 非Unicode数据
nchar(n) 定长 处理unicode数据类型(所有的字符使用两个字节表示) n 的值必须介于 1 与 4,000 之间。存储大小为 n 字节的两倍
nvarchar(n) 变长 处理unicode数据类型(所有的字符使用两个字节表示) n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零
ntext(n) 变长 处理unicode数据类型(所有的字符使用两个字节表示)
char varchar .jpg
(80.55 KB, 下载次数: 30)
下载附件
2012-3-23 15:05 上传
作者:
陈东
时间:
2012-3-23 16:32
楼主这个问题几天前已经有人在这里问过了,楼主下次提问问题的时候先在论坛搜索一下看看能不能找到答案,如果不能然后再提问。
char 定长
varchar 变长,ASCII字符只占1个字节
nvarchar 变长Unicode,字符都占2个字节
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2