数据库中nvarchar 和varchar区别!_数据库nvarchar_ys_code的博客-程序员秘密

技术标签: Mysql  

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的。

转载自:https://www.cnblogs.com/gdouzz/p/7094522.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ys_code/article/details/86536482

智能推荐

ibatis打印日志---把下面的内容放到logback.xml中_ibatis logback_glgl2424的博客-程序员秘密

${LOG_HOME}/sql.log  ${loggingCharset}     ${LOG_HOME}/sql.log.%d{yyyy-MM-dd}   30       [%d{yyyy-MM-dd HH:mm:ss}] [%thread] %level %logger{35} %msg %n

HTML5是移动互联网的关键_localhost110的博客-程序员秘密

浏览器软件开发商Opera认为,移动浏览器与HTML5相结合将使基于Web的应用程序更好地与本地应用程序竞争。据Opera共同创始人Jon von Tetzchner说,分散与本地应用程序的结合对于消费者和开发商都不是好事。von Tetzchner说,对于消费者来说,转换到采用不同操作系统的新型手机将更加困难。同时,要保留自己所有的应用程序,开发商在为不同的平台开发应用程 序的时候计划必须要

SpringBoot开发——整合MyBatis_戴夫爱吃胡萝卜的博客-程序员秘密

一、配置pom.xml <!-- 整合MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </de

[译] 写给大家看的 Cache-Control 指令配置_Msro的博客-程序员秘密

原文地址:Cache-Control for Civilians原文作者:Harry译文出自:掘金翻译计划本文永久链接:github.com/xitu/gold-m…译者:sunui校对者:portandbridge、yzw7489757最好的网络请求就是无须与服务器通信的请求:在网站速度为王的比试里,避免网络完胜于使用网络。为此,使用一个可靠的缓存策略会给你的访客带来完全不同...

jdbc中Statement和PreparedStatement两种方式的区别_jdbcpreparedstatement.excute_玲珑小番茄的博客-程序员秘密

java连接数据库,SQL语句执行常用的方式为通过Statement和PreparedStatement两种方式: Statement: execute:返回值是boolean类型,执行查询语句看不到返回值。 executeQuery:返回值是ResultSet类型,通常用于查询,使用方法为在里面直接写SQL语句。 PreparedStatement: 包含Statement两个方法,但使用不太一样,要先在conn.prepareStatement()中写入语句,之后根据需要再执

Android 中 Activity 启动模式(singleInstance、singleTask、singleTop、standard)_gz153016的博客-程序员秘密

任务栈第一课时:启动模式的配置:标准启动模式:MainActivity :package com.example.launch;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;

随便推点

NYOJ 水池数目(BFS)_hello_ljfbest的博客-程序员秘密

南阳理工NYOJ这是我们学校自己的oj 希望acmer观摩下;本题同上一篇文章一模一样……水池数目时间限制:3000 ms  |  内存限制:65535 KB难度:4描述南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通

Connected Systems_jackwofe的博客-程序员秘密

什么是Connected Systems? 互联系统(Connected Systems)包含了一系列的软件设计原则和软件开发技术。可以从4个方面来理解互联系统,服务、客户、处理过程和数据:·  服务互联:如何将一组已经存在的支持某种商业逻辑的服务互联起来?        ·  动态的构建应用系统        ·  在应用系统部属之后能够适应构建的服务·  客户端互联:如何将多种多样的服务使用者

Android入门第55天-在Android里使用OKHttp组件访问网络资源_TGITCIC的博客-程序员秘密

今天的课程开始进入高级课程类了,我们要开始接触网络协议、设备等领域编程了。在今天的课程里我们会使用OKHttp组件来访问网络资源而不是使用Android自带的URLConnection。一个是OKHttp组件更方便二个是OKHttp组件本身就带有异步回调功能。

ISO8583 报文协议_tz_zs的博客-程序员秘密

此文为转载,是之前在研究8583报文时找到的资料,一直珍藏着,非常好的文章。原文地址:http://www.itpub.net/thread-419521-1-1.html我刚进入金融行业时,就知道了IS08583报文协议,我想可能我还没进入这个行业都已经听过了,可知ISO8583的影响力有多大了。最初刚接触它时,确实对其中的一些细节概念不是很清晰,对有些地方比较迷惑。鉴于此,我想很...

java学习笔记——java循环结构_冻梨不是梨的博客-程序员秘密

顺序结构的语句只能被执行一次,如果想要被执行多次,就要使用循环结构。常用的循环结构有三种:for, while, do.....whilewhilewhile循环是最基本的循环,它的结构如下:while( 布尔表达式 ) { //循环内容}实例如下:public class Test { public static void main(String args...

Android基础之使用Gson解析json数据 第一弹_android gson 添加键值对_捡破烂致富的博客-程序员秘密

Android基础之使用Gson解析json数据 第一弹首先介绍一下JSON数据的格式 JSON数据 JSON对象 实体类对象 {……..} JSONObject Map [……..] JSONArray List* 总结:JSON只有两种格式,一种是大括号,表示一个JSONObject对象,一种是中括号,表示JSONArray数组 数据 解析后的数据类型

推荐文章

热门文章

相关标签