- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在SQL Server中,当我们设置字符型字段的时候,往往有很多个数据类型供我们选择,如:char nchar varchar nvarchar等,那么我们到底应该选择哪一个呢?下面就一一来描述其区别.
char:固定长度,非Unicode字符数据,长度为n个字节。n的取值范围为1至8,000,存储大小是n个字节。char的SQL2003同义词为character.
varchar:可变长度,非Unicode字符数据。n的取值范围为1至8,000。max指示最大存储大小是2^31-1个字节。存储大小是输入数据的实际长度加2个字节。所输入数据的长度可以为0个字符。SQL-2003中的varchar就是charvarying或charactervarying.
nchar:n个字符的固定长度的Unicode字符数据。n值必须在1到4,000之间(含)。存储大小为两倍n字节。nchar的SQL-2003同义词为nationalchar和nationalcharacter.
nvarchar:可变长度Unicode字符数据。n值在1到4,000之间(含)。max指示最大存储大小为2^31-1字节。存储大小是所输入字符个数的两倍+2个字节。所输入数据的长度可以为0个字符。nvarchar的SQL-2003同义词为nationalcharvarying和nationalcharactervarying.
char,varchar:最多8000个英文,4000个汉字 。
nchar,nvarchar:可存储4000个字符,无论英文还是汉字 。
char,nchar:定长,速度快,占空间大,需处理 。
varchar,nvarchar:变长,速度慢,占空间小,无需处理 。
定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度.
变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长.
1、char。char存储定长数据很方便,char字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到Trim().
2、varchar。存储变长数据,但存储效率没有char高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为varchar(10)是最合算的。varchar类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点.
3、nchar、nvarchar、ntext。这三种从名字上看比前面三种多了个“n”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失.
所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar.
最后此篇关于SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析的文章就讲到这里了,如果你想了解更多关于SQL Server数据类型char、nchar、varchar、nvarchar的区别浅析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想找到更好的方法来找到我正在相互比较的两个字符串的更大 nchar。 假设我在 sentenceMatch data.frame 中有字符串,我需要创建一个 max(nchar(string1),
1. char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的
有人可以向我解释这里发生了什么吗?当变量被编码为因子并且 nchar 强制转换为字符时,为什么该函数不能有效地计算字符数? > x nchar(x) [1] 5 5 5 5 > > x nchar
我有一个列表/向量列表: list(c("cat1", "cat6", ""), c("cat5", "cat3", "cat4"), c("cat6", "cat4", ""), c("cat5",
现在就摘录一下sql2005联机丛书里的关于这几个数据类型的解释 字符数据类型(nchar 长度固定,nvarchar 长度可变)和 Unicode 数据使用 UNICODE UCS-2 字符集。
我发现每当我从我的数据库加载一个对象时,它立即显示为 Dirty。 我找到了一些代码,可以让我在这里查看对象是否脏:http://nhforge.org/wikis/howtonh/finding-d
除了 CHAR (CHARACTER) 和 VARCHAR (CHARACTER VARYING) 之外,SQL 还提供了 >NCHAR (NATIONAL CHARACTER) 和 NVARCHAR
在SQL Server中,当我们设置字符型字段的时候,往往有很多个数据类型供我们选择,如:char nchar varchar nvarchar等,那么我们到底应该选择哪一个呢?下面就一一来描述其区
对于程序中的一般字符串类型的字段,SQL Server中有char、varchar、nchar、nvarchar四种类型来对应,那么这四种类型有什么区别呢,这里做一下对比。 1.定长或变长 所谓
有人可以帮我解决这个问题吗? 我需要将 nchar 列转换为 nvarchar 列并修剪空格。 谢谢你。 最佳答案 SELECT RTrim(CAST([MynCharColumn] As nVarC
我正在研究 MSDN 中的一个示例,该示例使用小型数据库来演示数据驱动测试,这是简单的架构: CREATE TABLE dbo.LogonInfoTest ( UserId nchar(2
我正在重构数据库 (SQL Server 2008) 方案并收集参数以将 NCHAR(1) 列(保留 Y|N 值)更改为位。每个人都知道这是必要的,但不知道为什么会发生,但这种变化会影响生产数据库,因
我一直在研究 substitute,但不太明白 nchar(substitute(a + b + c)) 的结果到底是什么?结果是 nchar(substitute(a + b + c)) [1] 1
据我了解,输入应在不指定的情况下转换为字符 "x = ...字符向量,或要强制转换为字符向量的向量" nchar(2015122514204000000) # 18 nchar("2015122514
根据我的经验,从我的数据库中选择数据的位置似乎不适用于 nchar 格式的字段,但适用于 nvarchar 格式的字段。这是真的? 如果是这样,为什么将数据类型更改为 nvarchar 是唯一的解决方
我正在使用 SQL Server 2008、Visual Web Developer 2012 和 .net 4.0。我在 SQL Server 中创建了一个表并向其中添加了一些列。我为一些列指定了数
你如何决定是使用 nvarchar 还是 nchar ? 例如,我注意到由 sqlmembership 提供程序创建的默认成员数据库将 Email 列声明为 nvarchar(256) 类型 对我来说
如果这个问题已经被问过和回答过,请原谅我。我只是花了一些时间搜索我的问题,但似乎找不到。 无论如何,我在 Visual Studio 2010 和 MS SQL Server 中工作。我已经创建了数据
我正在使用带有一组参数的 JDBC Prepared Statement 使用 setString(pos, value)。表上的基础列都是 NCHAR 和 NVARCHAR2。我已设置 Oracle
我有一个包含大量 NCHAR(n) 列的数据库。其中一些列是简单属性,但有些也是主键或外键。 表和列很多,测试数据量很大。 将每个 NCHAR(n) 列转换为相同长度的 NVARCHAR(n) 列并在
我是一名优秀的程序员,十分优秀!