char和nchar,varchar和nvarchar,text和ntext(转)
来源:互联网 发布:二叉堆优化的dijkstra 编辑:程序博客网 时间:2024/05/03 07:18
varchar和nvarchar的区别:
varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节(如varchar(6),当字段为qqq时,数据库实际占用空间为3个字节,而不是6个字节,但只允许存储6个字节,一般中文占两个字节)。
nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。
两字段分别有字段值:我和coffee
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。
如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar
SQL Server中,varchar和nvarchar如何选择?
varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unico来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unico编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会占用一个字节,而如果字段 的类型为nvarchar,则会占用两个字节.
正常情况下,我们使用varchar也可以存储中文字符,但是如果遇到操作系统是英文操 作系统并且对中文字体的支持不全面时, 在SQL Server存储中文字符为varchar就会出现乱码(显示为??).而且正常情况下,主机都会支持中文的环境,所以如果使用varchar来存储数 据,在开发阶段是发现不了的.多数情况下,在布署的时候也不会有问题.
但是!如果布署的主机是英文操作系统,并且不支持中文环境,那问 题就出来了.所有的varchar字段在存储中文的时候都会变成乱码(显示为??).而且一般情况下你不会知道这是因为你采用了错误的数据类型来存储所造 成的,你会试着去装中文字体,试着去设置操作系统的语言环境...这些都不能解决问题,唯一能解决问题的是把数据库字段的类型个性为nvarchar(或 者nchar).对项目管理比较熟悉的朋友应该都知道,到布署阶段再来修改数据库是一个很恐怖的事情.
使用nvarchar的另一个非常好处就是在判断字符串的时候可以不需要考虑中英文两种字符的差别.
当然,使用nvarchar存储英文字符会增大一倍的存储空间.但是在存储代价已经很低廉的情况下,优先考虑兼容性会给你带来更多好处的.
所以在Design的时候应该尽量使用nvarchar来存储数据.只有在你确保该字段不会保存中文的时候,才采用varchar来存储.
- char、varchar、text和nchar、nvarchar、ntext
- char、varchar、text和nchar、nvarchar、ntext
- char和nchar,varchar和nvarchar,text和ntext(转)
- (转)char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- SQL中char、varchar、text和nchar、nvarchar、ntext
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- SQL:char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- SQL:char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- char、varchar、text和nchar、nvarchar、ntext的区别
- SHLWAPI 和 CRT (C Runtime) 字符串处理函数的区别
- char、varchar、text、ntext、bigint、int、smallint、tinyint和bit的区别及数据库的数据类型(转)
- struts 2 in action 边读边译
- 总结下和提供下eee pc 1000h 用u盘或者移动硬盘安装windows xp的方法
- 面子驱动编程
- char和nchar,varchar和nvarchar,text和ntext(转)
- STL中map 和vector嵌套使用示例
- 用apache_2.2.11和php-5.2.9搭建PHP环境
- linkbutton的样式居然可以和<a标签一样用a:hover
- 如何实现在DataGird控件使用CheckBox批量删除
- Java编程那些事儿85——IO类体系
- Java编程那些事儿86——文件操作之File类使用
- Top Web Hosting
- Jquer获取页面控件的值 select,checkbox,radio