nvarchar 和varchar区别
有时候设计字段的时候,碰到nvarchar和varchar时候,是有点犹豫。所以今天就来探个究竟把。
(一) varchar是非Unicode可变长度类型,nvarchar是Unicode编码可变长度类型
DECLARE @name AS VARCHAR(50)='我是中国人test' SELECT @name AS Name, DATALENGTH(@name) AS [Length]
DECLARE @nname AS NVARCHAR(50)='我是中国人test' SELECT @nname AS Name, DATALENGTH(@nname) AS [Length]
(二)它们两者的最大长度不一样
nvarchar的最大值是4000
varchar最大值是8000
(三) varchar能存储的字节数就是它的长度,nvarchar能存储的字节数是它的长度乘2
CREATE TABLE Test (vStr varchar(10),nStr nvarchar(10) )--对于数字 INSERT INTO [dbo].[Test] VALUES('1234567890','1234567890')--对于字母 INSERT INTO [dbo].[Test] VALUES('abcdefghik','abcdefghik')--对于汉字 INSERT INTO [dbo].[Test] VALUES('我是中国人','我是中国人我爱我祖国')--对于汉字和字母 INSERT INTO [dbo].[Test] VALUES('我是中国zz','我是中国人zhang')
(四) 实际开发中,如何选择,到底是用哪个好呢?
总的来说,我是比较推崇使用nvarchar
有人说,varchar比nvarchar更省空间,应该更多的用varchar。但是我不是很赞同这个观点,首先,现在空间相对来说已经不是那么缺少了,没有必要太纠结于空间这个了,还有一点就是现在的操作系统基本上内部解析基本上都是用Unicode编码的,使用了nvarchar你可以避免每次从数据库读取或写入时候,进行编码转换,转换需要时间,并且很容易出错。如果出错,恢复回来可没那么简单,并且nvarchar是支持多种语言的。所以我大部分时间做数据库设计的时候都是用nvarchar的。
nvarchar 和varchar区别相关推荐
- SQL Server中的char,nchar,varchar和nvarchar有什么区别?
nvarchar是什么意思? SQL Server中的char , nchar , varchar和nvarchar什么区别? #1楼 char :固定长度的字符数据,最大长度为8000个字符. nc ...
- SQL中char\varchar\text与nchar\nvarchar\ntext的区别
SQL中char\varchar\text与nchar\nvarchar\ntext的区别 定义 特点 定义 char char(n)是长度不可变的,用于表示非Unicode字符数据.n代表该数据类型 ...
- nvarchar 和varchar 在len下一致,datalength下nvarchar翻倍
上一篇文档,写的是,老程序存储数据没有trim,导致的一些长度问题:截断字符串 和客户说是,还闹出了一个不大的笑话,当时提供脚本给客户的生产环境,用的是len,len()函数会把后面的空格自动过滤,结 ...
- sqlserver中的字符编码、排序规则、nvarchar和varchar、大N‘‘
环境: sqlserver 2014 window 10 建议先阅读<细说ASCII.GB2312/GBK/GB18030.Unicode.UTF-8/UTF-16/UTF-32编码> 先 ...
- mysql的binary、char、varchar区别
mysql的binary.char.varchar区别 分类: Mysql/postgreSQL 2013-09-24 18:11:46 char使用固定长度的空间进行存储,char(4)存储4个字符 ...
- SQL Server 2005 的nvarchar(max),varchar(max)来救火
今天处理组织架构部分的代码出错了,还好数据库迁移到了SQL Server 2005,原来系统使用的是SQL Server 2000,随着公司规模的扩大,公司人员的急速增长,系统不断的发生了问题,经常在 ...
- char和varchar区别
char是一种固定长度的类型,无论储存的数据有多少都会固定长度,如果插入的长度小于定义长度,则可以用空格进行填充.而varchar是一种可变长度的类型,当插入的长度小于定义长度时,插入多长就存多长. ...
- 简单描述char(n)、varchar(n)、nchar(n)、nvarchar(n)的区别
它们的区别概括成: char,nchar :定长,速度快,占空间大,需处理 varchar,nvarchar :不定长,空间小,速度慢,无需处理 nchar.nvarchar:处理Unicode码 c ...
- sql server中的varchar和Nvarchar有什么区别?
很多开发者进行数据库设计的时候往往并没有太多的考虑char, varchar类型,有的是根本就没注意,因为存储价格变得越来越便宜了,忘记了最开始的一些基本设计理论和原则,这点让我想到了现在的年轻人,大 ...
最新文章
- oracle10g 04030,一次ORA-04030问题的诊断(一)
- mysql ibatis xml配置 like_iBatis学习方法及入门总结
- 在vue中操作DOM--this.$nextTick()
- 悉尼一船只引擎爆炸男子被迫跳水:严重烧伤被送医
- a span做成按钮样式不选中文字
- 几个你可能不了解的CSS单位
- sas数据集怎么导出_SAS:将proc步的输出导出为数据集
- maven安装配置换阿里源
- Linux iptables常用命令
- 在百度实习的100天
- linux 文件隐藏,Linux系统怎么隐藏文件夹和文件?
- Android自定义图片拼图游戏案例
- 计算机水冷原理,水冷电脑流动的是什么“水”
- QT中主线程终止子线程中的死循环
- 免费的可视化Web报表工具,JimuReport v1.5.0版本发布
- animate.css插件指南
- SpringBoot 整合activiti5.22 实现一个完整的请假流程
- DOSBOX的简单使用
- 简单的YouTube菜单效果
- 亚马逊婴儿围栏CPC认证,ASTMF1004、ASTMF406、CPSIA测试标准办理