Oracle CHAR,VARCHAR,VARCHAR2,nvarchar类型的区别与使用 .

基于的公司考勤系统(程序+开题报告)(开题报告+源码) 我们将研究和设计系统的架构和功能模块,包括员工信息管理模块、部门信息管理模块、考勤信息记录模块、工资信息计算模块、请假信息处理模块、奖惩信息管理模块、公告信息发布模块、上班打卡模块以及加班申请模块等。目的: 本项目旨在设计并实现一个基于的公司考勤系统,通过该系统,可以实现对员工、部门信息、考勤信息、工资信息、请假信息、奖惩信息、公告信息、上班打卡、加班申请等功能的统一管理。基于的公司考勤系统的设计实现,旨在通过自动化技术提高考勤管理的效率和准确性,为企业管理提供有力的数据支持。最终成品以下面运行环境。 阅读详情
 

1、varchar和varchar2的区别:

             相同点:长度不固定,数据库根据存入数据的长度分配空间;

            不同点:varchar处理空字符串是存空而varchar2将空按null来处理;

2、nvarchar和nvarchar2的区别:

                两者之间的区别和varchar与varchar2的区别相同;

3、nvarchar2和varchar2的区别:

                varchar2:英文字母占一个字节;汉字或全角字符占两个字节;(一般情况下)

                nvarchar2:所有的字符都占两个字节;(一般情况下)

PS:以上之所有说是一般情况下是因为编码不同汉字占的字节数不同,GBK:汉字占两个字节,UTF-8汉字占三个字节,但是oracle数据空安装上默认的是GBK;
 
 
 
 
 
一 varchar,nvarchar,
四个类型都属于变长字符类型, varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。 nvarchar和nvarchar2的区别和上面一样,   与上面区别在于是根据Unicode   标准所进行的定义的类型,通常用于支持多国语言类似系统的定义。

1.char

char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节;

char是区分中英文的,中文在char中占两个字节,而英文占一个,所以char(20)你只能存20个字母或10个汉字。

char适用于长度比较固定的,一般不含中文的情况


2.varchar/varchar2

varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。

varchar同样区分中英文,这点同char。

varchar2基本上等同于varchar,它是oracle自己定义的一个非工业标准varchar,不同在于,varchar2用null代替varchar的空字符串

varchar/varchar2适用于长度不固定的,一般不含中文的情况

3.nvarchar/nvarchar2

nvarchar和nvarchar2是长度不固定的

nvarchar不区分中英文
,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数

nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英文字母也占两个字节

nvarchar/nvarchar2适用于存放中文

char [ ( n ) ]

    固定长度,非 Unicode 字符数据,长度为 n 个字节。n 的取值范围为 1 至 8,000,存储大小是 n 个字节。

varchar [ ( n | max ) ]

    可变长度,非 Unicode 字符数据。n 的取值范围为 1 至 8,000。max 指示最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加 2 个字节,用于反映存储的数据的长度。所输入数据的长度可以为 0 个字符。

    * 如果列数据项的大小一致,则使用 char。
    * 如果列数据项的大小差异相当大,则使用 varchar。
    * 如果列数据项大小相差很大,而且大小可能超过 8,000 字节,请使用 varchar(max)。

如果未在数据定义或变量声明语句中char 或 varchar 数据类型指定 n,则默认长度为 1。如果在使用 CAST 和 CONVERT 函数时char 或 varchar 数据类型未指定 n,则默认长度为 30。
当执行 CREATE TABLE 或 ALTER TABLE 时,如果 SET ANSI_PADDING 为 OFF,则定义为 NULL 的 char 列将作为 varchar 处理。
另外帮助理解的,只供参考:转自http://www.51testing.com/?uid-258885-action-viewspace-itemid-141197
也可参照学习http://ce.sysu.edu.cn/garden/dispbbs.asp?boardid=26&ID=8774&replyID=18180&skin=1
1.NULL值(空值)。

     a. char列的NULL值占用存储空间。

     b. varcahr列的NULL值不占用存储空间。

     c. 插入同样数量的NULL值,varchar列的插入效率明显高出char列。
2.插入数据

    无论插入数据涉及的列是否建立索引,char的效率都明显低于varchar。

3. 更新数据

     如果更新的列上未建立索引,则char的效率低于varchar,差异不大;建立索引的话,效率较高。

4. 修改结构

     a. 无论增加或是删除的列的类型是char还是varchar,操作都能较快的完成,而且效率上没有什么差异。

     b. 对于增加列的宽度而言,char与varchar有非常明显的效率差异,修改varcahr列基本上不花费时间,而修改char列需要花费很长的时间。

5.数据检索

     无论是否通过索引,varchar类型的数据检索略优于char的扫描。

选择char还是选择varchar的建议

    1.适宜于char的情况:

     a. 列中的各行数据长度基本一致,长度变化不超过50字节;

     b. 数据变更频繁,数据检索的需求较少。

     c. 列的长度不会变化,修改char类型列的宽度的代价比较大。

     d. 列中不会出现大量的NULL值。

     e. 列上不需要建立过多的索引,过多的索引对char列的数据变更影响较大。

    2.适宜于varchar的情况;

     a. 列中的各行数据的长度差异比较大。

     b. 列中数据的更新非常少,但查询非常频繁。
     c. 列中经常没有数据,为NULL值或为空值

nchar [ ( n ) ]

    n 个字符的固定长度的 Unicode 字符数据。n 值必须在 1 到 4,000 之间(含)。存储大小为两倍 n 字节。

nvarchar [ ( n | max ) ]

    可变长度 Unicode 字符数据。n 值在 1 到 4,000 之间(含)。max 指示最大存储大小为 2^31-1 字节。存储大小是所输入字符个数的两倍 + 2 个字节。所输入数据的长度可以为 0 个字符。

注释

如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。

如果列数据项的大小可能相同,请使用 nchar。

如果列数据项的大小可能差异很大,请使用 nvarchar。

sysname 是系统提供的用户定义数据类型,除了不可为空值外,在功能上与 nvarchar(128) 相同。sysname 用于引用数据库对象名。

为使用 nchar 或 nvarchar 的对象分配的是默认的数据库排序规则,但可使用 COLLATE 子句分配特定的排序规则。

SET ANSI_PADDING ON 永远适用于 nchar 和 nvarchar。SET ANSI_PADDING OFF 不适用于 nchar 或 nvarchar 数据类型。

在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别

1.CHAR(size)和VARCHAR(size)的区别
    CHAR为定长的字段,最大长度为2K字节;
    VARCHAR为可变长的字段,最大长度为4K字节;

2.CHAR(size)和NCHAR(size)的区别
    CHAR如果存放字母数字占1个字节,存放GBK编码的汉字存放2个字节,存放UTF-8编码的汉字占用3个字节;
    NCHAR根据所选字符集来定义存放字符的占用字节数,一般都为2个字节存放一个字符(不管字符或者汉字)

3.VARCHAR(size)和VARCHAR2(size)的区别
    在现在的版本中,两者是没有区别的;最大长度为4K字节;推荐使用VARCHAR2;

4.VARCHAR2(size)和NVARCHAR2(size)的区别
    最大长度为4K字节,区别同CHAR与NCHAR的区别;(如果数据库字符集长度是2,则NVARCHAR2最大为2K)

5.共同特性
    当执行insert的时候,插入的值为'',则转变成null,即insert ... values('') <=> insert ... values(null)
    搜索的条件须用where xx is null

6.例子
    比如有一个性别字段,里面存放“男,女”的其中一个值,两种常用选择
        CHAR(2)    和 NCHAR(1)
MFC下使用C++操作Word文档 由于项目需求,在MFC环境下操作将数据和图片写入word文档,之前没有接触过,网上查阅了很多资料,终于把任务完成。理解的不是很透彻,但是这些东西应该够用了,写篇博客记录一下,以便以后再用到。 (1)VS环境下创建一个MFC应用程序,然后在项目上单击右键,选择 类向导-----添加类----类型库中的MFC类。在弹出的对话框中选择文件,位置选择office安装目录下的... 阅读详情

相关推荐

通过实例讲解瀑布模型

在电子商城开发中,瀑布模型如同 “工业时代的流水线”—— 能通过标准化流程交付高质量、高合规性的系统,但也可能因缺乏灵活性而错失市场机会。其优势缺点本质上源于同一核心特征:严格的阶段性文档驱动。决策建议若开发传统型、长周期、需求固定的电子商城(如企业内部采购平台),可优先选择瀑布模型,并通过 “需求预验证 + 模块化设计” 降低风险;若开发创新型、短周期、需快速迭代的电商平台(如社交电商、跨境电商),建议采用敏捷模型或混合模型(如瀑布 + Scrum),平衡规范性响应速度。

跟佟格湾一起学习计算机知识吧~ 236

Oraclevarchar,varchar2,nvarchar,nvarchar2区别及其它数据类型描述

Oracle中数据类型描述

PinkCoder 4799

华为OD机试 - 去除多余空格(Python/JS/C/C++ 2024 E卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。条件约束:输入为两行字符串:第一行:待去除多余空格的文本,用例保证如果有单引号,则单引号成对出现,且单引号可能有多对。 第二

学Java,找哪吒 1194

char, varchar, nvarchar区别

这篇文章有些问题,有待整理!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2009-12-03 Oracle CHARVARCHARVARCHAR2,nvarchar类型区别使用varchar,nvarchar, 四个类型都属于变长字符类型varcharvarchar2区别后者把所有字符都占两字节,前者只对汉字和全角...

Freeze 449

Oracle数据类型 CHARVARCHARVARCHAR2区别

varchar对空串不处理,varchar2将空串当做null来处理。varchar存放固定长度的字符串,最大长度是2000,varchar2是存放可变长度的字符串,最大长度是4000。存“aaabbb”,长度不满10,Oracle会用空格补满10位。:使用CHAR的时候,Select查询要注意定长的格式,查询字符串的长度要刚好,多了少了都不能查不到数据。VARCHAR 是标准sql里的,VARCHAR2Oracle所提供的独有的数据类型CHAR是定长的,VARCHAR2是变长,都可以存储字符串。

qq_43312876的博客 3799

Oraclevarchar2nvarchar2和mysql的varchar

Oracle 随后将按照您指定的方式将每个值存储在列中,前提是该值不超过该列的最大长度。但最多占65532字节(两个字节存放长度,小于255字节用1个字节存放长度),varchar(n)这里的n表示字符数,比如varchar200),不管是英文还是中文都可以存放200个。当您创建包含列的表时NVARCHAR2,最大大小始终采用字符长度语义,这也是该NVARCHAR2数据类型的默认且唯一的长度语义。首先,VARCHAR2的最大大小可以是字节或字符,而NVARCHAR2的最大大小只能是字符。

yuangit的博客 4295

oraclenvarchar,SQL中的Nvarcharoracle中用作varchar2

我听说过Oracle中的varchar2emp_name varchar2(10)如果输入的值小于10,则剩余空间将被自动删除在SQL中我们如何实现这一目标。通过使用nvarchar,我们可以在SQL中实现相同的功能吗?在SQL SQL Server中是什么意思?Oracle使用SQL。"在SQL中实现相同的功能"没有任何意义。 还是说SQL和PL / SQL之间的区别?stackoverflow...

weixin_39728320的博客 1050

Oracle字段类型charvarchar2nvarchar2区别使用

1、和VARCHAR不同的是,VARCHAR2把空串等同于null处理,这也是为什么ORACLE推荐使用VARCHAR2类型的原因。存储大小是输入数据的实际长度加 2 个字节,用于反映存储的数据的长度。例如varchar2(3 char),可以存储3个字符(包括字母和汉字),如'啊啊啊'、'aaa'、'啊aa',字节(byte)长度无关;上面不同的是,是根据Unicode标准所进行的定义的类型,通常用于支持多国语言类似系统的定义。固定长度,非 Unicode 字符数据,长度为 n 个字节。

xiying15270873284的博客 9399

ORACLE CHAR,VARCHAR,VARCHAR2,NVARCHAR类型区别使用 【转】

ORACLE CHAR,VARCHAR,VARCHAR2,NVARCHAR类型区别使用 【转】

WYZSC的专栏 2215

ORACLE CHAR,VARCHAR,VARCHAR2,NVARCHAR类型区别使用

区别:   1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。   2CHAR的效率比VARCHAR2的效率稍高。   3.目前VARCHARVARCHAR2

xiaomin1991222的专栏 5266

Oracle CHARVARCHARVARCHAR2,nvarchar类型区别使用

这篇对oracle几种字符类型总结的比较好,收藏了。 一 varchar,nvarchar, 四个类型都属于变长字符类型varcharvarchar2区别后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。 nvarcharnvarchar2区别和上面一样,   上面区别在于是根据Unicode   标准所进行的定义的类型,通常用于支持多国语言类似系统的定义。

Ghost_T的专栏 2293

OracleCHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型区别

【在OracleCHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型区别 】1.CHAR(size)和VARCHAR(size)的区别     CHAR为定长的字段,最大长度为2K字节;     VARCHAR为可变长的字段,最大长度为4K字节; 2.CHAR(size)和NCHAR(size)的区别     CHAR如果存放字母数字占1个字节,存放GBK编码的

于大大大洋 1393

Oracle字符串类型char,nchar,varchar2,nvarchar2区别

网上对于这几个字符串类型的对比文章很多,有些还对比错了。我现在写这篇文章,不是为了批评什么。我只是把书本中看到的知识简单总结出来,再偷偷打上[原创]标签而已... 很多新手可能不知道charvarchar2的定义格式其实是varchar2  char,除了指定size大小以外,还要指定一个类型。 请看下面分解: 1、定长和变长区别 char,nchar是定长类型,例如char(12),如

妈妈说有这么一群人 4796

Oracle CHARVARCHARVARCHAR2,NVARCHAR类型区别使用

Oracle CHARVARCHARVARCHAR2,nvarchar类型区别使用 Oracle数据结构ASPCC++  一 varchar,nvarchar,  四个类型都属于变长字符类型varcharvarchar2区别后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。 nvarcharnvarchar2区别和上面一样,   上面区别在于是根据

雪飘扬的博客 840

请问VARCHAR2(128)能存多少个汉字?

Q:请问VARCHAR2(128)能存多少个汉字?‘ A:看看什么字符集,或者看单个汉字几个字节lengthb Q:请问怎样查看你所提出的两个问题? A:oracle中length()lengthb()区别 SQL> select length('阿猪') from dual; LENGTH('阿猪') --------------              2 SQL>

heqiyu34的专栏 1万+

ORACLE】谈一谈NVARCHAR2、NCHAR、NCLOB等数据类型和国家字符集

一直以来,很多用过ORACLE数据库的开发人员,都知道在ORACLE中,字符类型可以为varchar2,也可以为nvarchar2,但是很多人都不知道这两种类型有什么区别,同样还有char/nchar,clob/nclob这些,所以今天来谈谈我对这些数据类型的理解。

DarkAthena的博客 6451

oracle nvachar 长度,Oraclevarcharvarchar2nvarcharnvarchar2

在设计Oracle数据库的时候需要为字段选取类型。对数据库中的varcharvarchar2nvarcharnvarchar2这几种数据类型一直不知道怎么选取。varcharvarchar2Oraclevarcharvarchar2区别不是很大,但是建议使用varchar2varchar2用null代替varchar的空字符串。varchar2nvarchar2nvarchar...

weixin_33355290的博客 2107

varcharvarchar2nvarcharnvarchar2

1、varchar/varchar2    varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。    varchar同样区分中英文,这点同char。    varchar2基本上等同于varchar,它是oracle自己定义的一个非工业标准varchar,不同在于,varchar2用null代替var

gumengkai的博客 2461

关于number和varchar2 走索引的问题

create table xyq (id1 number,id2 varchar2(2)) insert into xyq values(1,'2'); insert into xyq values(1,'2'); insert into xyq values(2,'2'); insert into xyq values(2,'2'); insert into xyq value

xiayanquan的专栏 1285

Aspose.Words for .NET v24.10.0 (08 Oct 2024) + CRACK & License Key

Activation license key stored in 'Aspose.Total.NET.lic'Just call following method in your application start:new Aspose.Words.License().SetLicense("Aspose.Total.NET.lic Path");

快递智能交叉带分拣机sw2020可编辑设计图纸.7z

快递智能交叉带分拣机sw2020可编辑设计图纸.7z

上一篇: Java中super关键字的三种用法
下一篇: oracle 多表联合查询总结归纳 .
java_pp
博客等级 码龄16年 4粉丝 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值