文档章节

char、varchar、nchar、nvarchar的区别

Taisuke
 Taisuke
发布于 2014/06/08 17:09
字数 470
阅读 205
收藏 4
  1. 定长或变长
    所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;有var前缀的,表示是实际存储空间是变长的,比如varchar,nvarchar变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。

  2. Unicode或非Unicode
    数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。

            基于以上两点来看看字段容量:

     

char,varchar 最多8000个英文,4000个汉字
nchar,nvarchar 可存储4000个字符,无论英文还是汉字


总结:如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar

         如果数据量非常大,又能100%确定长度且保存只是ansi字符,那么char    

        能确定长度又不一定是ansi字符或者,那么用nchar;   

        对于超大数据,如文章内容,使用nText 

        其他的通用nvarchar




© 著作权归作者所有

上一篇: 单例模式
下一篇: C++内存字节对齐
Taisuke
粉丝 7
博文 36
码字总数 14463
作品 0
济南
程序员
私信 提问
Oracle中的character set 和 national character set

##CHARACTER SET specifies the character set the database uses to store data. You cannot change the database character set after creating the database. The supported character se......

李_正
2016/04/06
53
0
Oracle中char,varchar,varchar2,nvarchar,nvarchar2的区别

一、概述 1.char char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节; char是区分中英文的,中文在c...

MiniBu
2014/06/23
323
0
varchar和Nvarchar区别

Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示 如果还为了这个纠结,就直接看看后面的解说,做决定吧。 一般如果...

Yamazaki
2012/06/01
6
0
sqlite 数据类型

一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。 SQLite具有以下五种数据类型: 1.NULL:空值。 2.INTEGER:带符号的整型,具体取决有存入数字的范...

鉴客
2012/03/09
112
0
sqlite 数据类型

一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。 SQLite具有以下五种数据类型: 1.NULL:空值。 2.INTEGER:带符号的整型,具体取决有存入数字的范...

晨曦之光
2012/03/01
803
0

没有更多内容

加载失败,请刷新页面

加载更多

总结:TCP/IP协议

一、介绍 TCP协议属于OSI七层模型中的传输层协议,提供处于网络连接中的两台计算机之间的数据 传输。   在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议...

浮躁的码农
15分钟前
2
0
一言不合就删库跑路?万名贡献者和阿里巴巴开源的二三事

9 月 27 日云栖大会,阿里巴巴宣布贾扬清担任开源技术委员会负责人。 有人问:开源是为了什么? 从个人视角看,可以证明自己的专业能力,获得行业认可; 从企业视角看,可以建立技术影响力,...

大涛学弟
26分钟前
3
0
JAVA编程注意事项(性能篇)

1. 尽量在合适的场合使用单例 使用单例可以缩短加载的时间,提高加载的效率,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资源的并发访问; 第二,控制实例的产生...

你好夜故事
27分钟前
3
0
List 前端 AngularJS JS 对IP排序

数据格式 $scope.dataList=[ {"ip":"192.168.10.10", "port":"8080",...}, { "ip":"192.168.10.12", "port":"8080",... } ,.....] 调用 $scope.ipSortForward($scope.dataList,"ip") 核心代码......

最菜最菜之小菜鸟
27分钟前
3
0
浅析Cassandra LeveledCompactionStrategy

前言 Cassandra是基于LSM架构的分布式数据库。LSM中有一个很重要的过程,就是压缩(Compaction)。默认的压缩策略是SizeTieredCompactionStrategy,今天主要说一下另一种压缩策略LeveledComp...

阿里云官方博客
32分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部