第13章 Oracle10G_数据类型.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章 Oracle10G_数据类型

第13章 Oracle数据类型 本章将进入Oracle数据类型的学习。Oracle中的数据类型主要应用场景为数据表中列的类型、函数、存储过程的变量定义。这些数据类型大致可以分为4类:字符型(character)、数值型(number)、日期型(date)和大对象型(LOB)。 字符型简介; 数值型简介; 日期时间型简介; lob类型简介; 特殊数据简介。 13.1 Oracle中的数据类型 基本数据类型各有多个实际类型。这些实际类型才可以直接应用于数据表列和变量定义。本节将简要介绍四种基本数据类型的各个实际类型。 13.1.1 字符型 1.char(n) 2.varchar(n) 3.varchar2(n) 13.1.2 数值型 Oracle中的数值型可以用于存储整数(integer)、浮点数(float)和实数(real number)。而所有这些数值类型都被统一为number型。Oracle中的number数据类型具有精度和小数位数。精度是数值中的数字总位数,最大位数为38位。小数位数则是小数点之后的位数。number表示number(38),即最大位数为38的整数。number(7,2)表示小数位数最大为2,整数部分最大位数为5的数值。number(3)表示最大3位的整数。 Oracle并没有定义整型(integer或者int),但是Oracle允许某个字段定义为整型,这是因为整型是工业标准的强制性要求。 13.1.3 日期时间型 日期时间型主要用来存储日期和时间格式的数据。Oracle中最常用的日期型为date,该类型中包含以下信息 Century:世纪信息; Year:年份信息; Month:月份信息; Day:天数信息; Hour:小时信息; Minutes:分钟信息; Second:秒数信息。 13.1.4 lob类型 lob类型主要用于存储大对象(Large Object)类型。例如,大量的文本信息(因为varchar2最大长度只能达到4000)、二进制文件等。lob类型的最大存储容量为4G字节,数据的存储形式可以为数据库,也可以是外部数据文件。lob类型有以下几种具体类型: clob:用于存储大型文本数据,例如,备注信息。 blob:用于存储二进制数据,例如,图片文件的二进制内容。 bfile:作为单独文件存在的二进制数据。 13.2 Oracle中的特殊数据 四种基本数据类型保证了Oracle可以处理数据存储、变量使用等大部分的工作。另外,Oracle中存在着一些特殊的数据值得注意。 13.2.1 rowid rowid是用于标识数据物理地址的列。该列是一个伪列,它并非用户创建,而是由数据库自动为表添加,且只可供数据库内部使用。rowid的组成通常为10个字节。 select t.*, t.rowid from t_employees t; rowid的前6个字符代表数据对象编号,(例如AAAMbj);其后的三个字符代表文件编号(例如AAB);接下来的5个字符代表块编号(例如AAAN/);最后的4个字符代表行的编号(例如CAAA、CAAB)。分析表中各记录的rowid可知,表中的rowid是唯一的。一般情况下,可以认为在查询语句中没有指定排序标准时,将以rowid作为默认排序标准。 需要注意的是,rowid不能作为记录插入数据表的先后标准。rowid位置靠后的记录不一定是晚插入的记录。因为,Oracle总是查找空闲的空间进行插入动作。某些记录被删除之后,Oracle即可释放相应空间,之后插入的数据有可能存储于删除记录所带来的空闲空间中。其rowid将小于现有某些记录的rowid。 13.2.2 null与空字符串 Oracle中将空字符串视为null。在Oracle中判断某列的值是否为空,不能将该列的值与空字符串’’进行比较,而应该使用is null。 create table test_data (id varchar2(10), name varchar2(20)); begin insert into test_data values (1, 张三); insert into test_data values (2, 李四); insert into test_data values (3, ); insert into test_data values(4, null); commit; end; select * from test_data where name = ; select * from test_data where name is null; select * from test_data where name is not nul

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档