数据库中nvarchar 和varchar区别!

sql中varchar和nvarchar的区别与使用方法 问: sql server中的varchar和Nvarchar有什么区别啊,varchar好像是一个英文和一个汉字都站两个字节,而Nvarchar则是一个英文占一个字节,汉字占两个字节。可是这个对asp程序有什么影响? 答: varchar(n) 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。 nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。 两字段分别有字段值 立即下载
AI摘要

本文深入探讨了SQL Server中nvarchar和varchar的区别,包括编码方式、最大长度、存储字节数及实际开发中的应用建议,帮助读者理解何时使用哪种类型。

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

某音播放量查询,播放量接口研究,最新版本抓包,修改SO文件绕过SSL 本教程适用于某音27.8,64位版本,32为版本及某音旁侧版本修改方法大同小异,部分旁侧版本修改之后模拟器可能无法抓包,真机测试均可正常抓包,此方法修改后绝大部分包可以正常抓取,但部分包无法抓取,例如验证码,内置浏览器功能,如需抓取此类包可通过 Postern + Charles 实现。 阅读详情

相关推荐

FPGA进位链(Carry Chain)实战:从Xilinx CARRY8原语到性能优化全解析

本文深入解析了FPGA进位链(Carry Chain)的原理与应用,重点剖析了Xilinx CARRY8原语的端口功能与内部机制。通过实测数据揭示了进位链的真实延迟特性与温度影响,并详细阐述了如何利用DI和S信号进行动态路径优化、实现减法运算与条件进位选择,从而有效提升设计性能。最后,文章探讨了系统级的流水线拆分、布局约束等实战优化策略与常见陷阱。

weixin_29313817的博客 454

nvarchar和varchar的区别

1、varchar是非Unicode可变长度类型,nvarchar是Unicode可变长度类型。 2、varchar和nvarchar的最大长度不一样,nvarchar的长度设置必须为1和4000之间。varchar的长度设置必须是1和8000之间。 3、varchar能存储的字节数就是他的长度。nvarchar能存储的字节数是它长度的2倍。 区别: ① 从存储方式上,nvarchar是按字符存储的,varchar是按字节存储的。 ② 从存储量来看,varchar是比较省空间的,因为存储的..

CodingLJ 4万+

浙大数值分析lab2

最可怕的一道题,题目是这样的 Root of a Polynomial A polynomial of degree nnn has the common form as p(x)=cnxn+cn−1xn−1+⋯+c1x+c0p(x)=c_n x^n + c_{n-1} x^{n-1} + \cdots + c_1 x + c_0p(x)=c​n​​x​n​​+c​n−1​​x​

yao_zou的博客 4797

nvarchar 和varchar区别

有时候设计字段的时候,碰到nvarchar和varchar时候,是有点犹豫。所以今天就来探个究竟把。 (一) varchar是非Unicode可变长度类型,nvarchar是Unicode编码可变长度类型 DECLARE @name AS VARCHAR(50)='我是中国人test' SELECT @name AS Name, DATALENGTH(@nam...

weixin_30617695的博客 1278

java写一个多人线上聊天室

课程作业谔谔

weixin_51614848的博客 1136

uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available. MDK5.37安装ARM_Compiler_5

MDK5.37安装ARM_Compiler_5 最后一个AC5编译器,从MDK5.37开始,不再默认安装,需要独立安装 ARMCompiler_506_Windows_x86_b960.zip (80.94MB) 否则使用AC5编译代码报错如下: Build started: Project: Project *** Target 'STM3210C_EVAL' uses ARM-Compiler 'Default Compiler Version 5' which is not available. *

mowwwcom的专栏 2万+

nvarchar类型和varchar类型

nvarchar类型和varchar类型 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录nvarchar类型和varchar类型写在前面一、nvarchar是什么?2.读入数据总结 写在前面 笔者今天在阅读一份数据库设计时观察到表中大量使用了nvarchar这一类型,发现自己对此了解的太少,比如它是什么类型,和varchar的区别,为什么这份数据库

weixin_40625622的博客 2万+

7.19华为OD机试真题 新系统 - 物流仓储多维度成本利润综合查询系统 (Java/Py/C/C++/Js/Go)

7.19华为OD机试真题 新系统 - 物流仓储多维度成本利润综合查询系统 (Java/Py/C/C++/Js/Go)

算法大师! 620

varchar和nvarchar有什么区别(varchar和nvarchar占用空间有什么区别)

如果仅需要存储非Unicode字符集的字符串,使用varchar类型即可,可以节约一定的存储空间。2. nvarchar:该类型可以存储Unicode字符集(如UTF-8、UTF-16等)的字符串,每个字符占用2个字节的存储空间。例如,如果要存储“hello”这个字符串,需要5个字节的存储空间。因此,对于相同长度的字符串,nvarchar类型占用的存储空间是varchar的两倍,但nvarchar类型可以存储所有语言的字符,避免了乱码或无法识别的问题,更易于国际化的应用场景。

qq_51980838的博客 3385

三态门Multisim电路仿真——硬件工程师笔记

三态门原理及应用摘要 三态门是具有高电平(1)、低电平(0)和高阻态(Z)三种输出的逻辑电路,通过使能端(EN)控制状态切换。高阻态时输出端等效断路,避免信号冲突。其核心应用包括: 总线系统:多设备共享总线时,仅使能选中设备的三态门,其余保持高阻态,防止干扰。 数据选择器:利用三态门切换多路输入信号,简化电路设计。 实现方式分两种: TTL三态门(三极管构成):低电平使能有效,仿真验证输出逻辑与高阻态。 MOS三态门(MOS管构成):高电平使能有效,仿真显示使能信号控制输出状态。 文中还附硬件工程师笔试面试

XU157303764的博客 2013

20、Citrix 云桌面常见VDA注册问题汇总

本文总结了与 VDA 中出现的 VDA 会话断开连接、注册、会话卡住以及挂起/崩溃相关的主要支持文章。

我在Citrix、VMware、Veeam、微软和NVIDIA等领域拥有丰富经验的专业人士,专注于设计和维护虚拟化基础设施、实施备份与灾难恢复策略,致力于优化企业的IT环境。 945

VARCHAR和NVARCHAR的区别

1、各自的定义: ► nvarchar(n) : 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 ► varchar[(n)]: 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于

F & Q的专栏 3115

001、Zephyr RTOS简介与历史背景

本文介绍了Zephyr RTOS的特点及其在嵌入式开发中的应用。作者通过亲身经历比较了Zephyr与传统RTOS的差异,重点分析了Zephyr的设备树、统一驱动模型、基于CMake的构建系统、POSIX兼容层等核心特性。文章详细阐述了Zephyr在内核设计上的优势,如中断处理模型、内存管理等,并提供了社区生态和使用建议。作者建议开发者从简单项目入手逐步掌握Zephyr,同时指出了常见的使用问题和适用场景,认为Zephyr特别适合复杂软件架构的物联网和工业控制项目。

m0_50546716的博客 155

oracle中的char、varchar、varchar2、nvarchar、nvarchar2区别

oracle中的char、varchar、varchar2、nvarchar、nvarchar2区别

master_yao的博客 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Oracle中varchar,varchar2,nvarchar,nvarchar2的区别及其它数据类型描述

Oracle中数据类型描述

PinkCoder 4822

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MySQL中char、varchar和nvarchar的区别

一、char和varchar的区别char是固定长度的,而varchar会根据具体的长度来使用存储空间,另外varchar需要用额外的1-2个字节存储字符串长度。 1). 当字符串长度小于255时,用额外的1个字节来记录长度 2). 当字符串长度大于255时,用额外的2个字节来记录长度 比如char(255)和varchar(255),在存储字符串"hello world"时,char会用一块25...

2176

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

varchar和Nvarchar区别

varchar(n) 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。 nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。 两字段分别有字段值:我和co

java 733

oracle的varchar用法,Oracle数据库中的varchar,varchar2,nvarchar,nvarchar2区别及用法

【varchar,varchar2】联系:1. varchar/varchar2用于存储可变长度的字符串比如 varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字节2. size 的最大值是 4000,而最小值是 1,其值表示字节数,比如varchar(20)表示最大可以存放20个字节的内容区别:1. varchar2把所有字符都占两字节处理(一般情况下...

weixin_42136791的博客 4079

oracle数据库中nvarchar,Oracle数据库中的varchar,varchar2,nvarchar,nvarchar2区别及用

【varchar,varchar2 】 联系: 1. varchar/varchar2用于存储可变长度的字符串 比如 varchar(20),存入字符串'abc', 则数据库中该字段只占3个字节,而不是20个字节 2. size 的最大是 4000,而最小是 1,其表示字节数, 比如 varchar(20)表示最大可以存放2【varchar,varchar2】联系:1. varchar/varc...

weixin_28687331的博客 1233

ORACLE VARCHAR2和NVARCHAR2的区别

一、区别1 NVARCHAR2(n),单位为字符,n最大值为2000。 VARCHAR2(n type),type可以是char也可以是byte,默认为byte,n最大值为4000。 关于VARCHAR22,有三种定义方式: VARCHAR2(n) 未指定类型,默认为byte,即最多存储4000个字节 VARCHAR2(n byte) 指定类型为byte,允许最大n个字节长度的内容存储,和字符数无关 VARCHAR2(n char) 指定类型为char,允许最大n 个字符长度的内容存储..

laiyiqidashuangkou的博客 7567

数据库中varchar和Nvarchar区别与联系

在数据库中新建表的时候发现了字段类型有的带n有的不带n,那么两者之间有什么区别? 于是上网查找一些资料如下: 一、 1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到trim()。 2、VARCHAR。存

李赛赛的专栏 473

varchar和nvarchar等等的区别

很多开发者进行数据库设计的时候往往并没有太多的考虑char, varchar类型,有的是根本就没注意,因为存储价格变得越来越便宜了,忘记了最开始的一些基本设计理论和原则,这点让我想到了现在的年轻人,大手一挥一把人民币就从他手里溜走了,其实我想不管是做人也好,做开发也好,细节的把握直接决定很多东西。当然还有一部分人是根本就没弄清楚他们的区别,也就随便选一个。在这里我想对他们做个简单的分析,当然如果有...

AlbenXie的博客 292

Oracle中varchar,varchar2,nvarchar,nvarchar2的区别

-varchar,varchar2 联系:1.varchar/varchar2用于存储可变长度的字符串比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个字节2.size 的最大值是 4000,而最小值是 1,其值表示字节数,比如varchar(20)表示最大可以存放20个字节的内容 区别:1.varchar2把所有字符都占两字节处理(一...

88
上一篇: Docker 安装ElasticSearch!
下一篇: solr服务器搭建!
ys_code
博客等级 码龄10年 13粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值