☆
Oracle Database 10g版本
Oracle Database 10g 提供了四个版本
Oracle数据库10g标准版1(Oracle Database 10g Standard Edition One )为工作组、部门级和互联网/内联网应用程序提供了前所未有的易用性和性能价格比。从针对小型商务的单服务器环境到大型的分布式部门环境, Oracle Database 10g Standard Edition 包含了构建关键商务的应用程序所必需的全部工具。 Standard Edition One 仅许可在最高容量为两个处理器的服务器上使用。
Oracle数据库10g标准版(Oracle Database 10g Standard Edition ) 提供了 Standard Edition One 的前所未有的易用性、能力和性能,并且利用真正应用集群提供了对更大型的计算机和服务集群的支持。它可以在最高容量为四个处理器的单台服务器上、或者在一个支持最多四个处理器的服务器的集群上使用。
Oracle数据库10g企业版(Oracle Database 10g Enterprise Edition )为关键任务的应用程序(如大业务量的在线事务处理 (OLTP) 环境、查询密集的数据仓库和要求苛刻的互联网应用程序)提供了高效、可靠、安全的数据管理。Oracle 数据库企业版为企业提供了满足当今关键任务应用程序的可用性和可伸缩性需求的工具和功能。它包含了 Oracle 数据库的所有组件,并且能够通过购买选项和程序包(本文稍后将加以说明)来进一步得到增强。
Oracle数据库10g个人版 (Oracle Database 10g Personal Edition) 支持需要与Oracle数据库10g标准版1、Oracle 数据库标准版和 Oracle 数据库企业版完全兼容的单用户开发和部署。通过将 Oracle Database 10g 的获奖的功能引入到个人工作站中,Oracle 提供结合了世界上最流行的数据库功能的数据库,并且该数据库具有桌面产品通常具有的易用性和简单性。
Oracle 数据库个人版、Oracle 数据库标准版、标准版1和 Oracle 数据库企业版包含了一系列常见的应用程序开发功能(包括与 SQL 对象相关的功能、用于编写存储过程和触发器的 PL/SQL 和 Java 编程接口)。
☆
数据类型
定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型
☆
标量(SCALAR)
合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。
☆
数字
数字,它有三种基本类型--NUMBER、PLS_INTEGER和BINARY_INTENER。NUMBER可以描述整数或实数,而PLS_INTEGER和BINARY_INTENER只能描述整数。
NUMBER,是以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。它的定义方式是NUMBER(P,S),P是精度,最大38位,S是刻度范围,可在-84127间取值。例如:NUMBER(5,2)可以用来存储表示-999.99999.99间的数值。P、S可以在定义是省略,例如:NUMBER(5)、NUMBER等;
BINARY_INTENER用来描述不存储在数据库中,但是需要用来计算的带符号的整数值。它以2的补码二进制形式表述。循环计数器经常使用这种类型。
PLS_INTEGER和BINARY_INTENER唯一区别是在计算当中发生溢出时,BINARY_INTENER型的变量会被自动指派给一个NUMBER型而不会出错,PLS_INTEGER型的变量将会发生错误。
☆
Number补充
在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在 1.0 * 10(-130) —— 9.99 * 10(125) {38个9后边带88个0} 的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。
Number的数据声明如下:
1)Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127
2)Number(p) 声明一个整数 相当于Number(p, 0)
3)Number 声明一个浮点数 其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。
定点数的精度(p)和刻度(s)遵循以下规则:
当s>0时(s表示小数点右边的数字的个数):
当一个数的整数部分的长度 > p-s 时,Oracle就会报错
当一个数的小数部分的长度 > s 时,Oracle就会舍入。
当s<0时(s表示小数点左边的数字的个数):
Oracle就对小数点左边的s个数字进行舍入。
当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入
例如:
Value-->Datatype-->Stored Value
123.2564-->NUMBER-->123.2564(不限制)
1234.9876-->NUMBER(6,2)-->1234.99(精确到小数点后两位)
12345.12345-->NUMBER(6,2)-->Error(小数点左边的有效数字长度5+小数点右边的有效数字长度2>规定精度6)
1234.9876-->NUMBER(6)-->1235 (等价于NUMBER(6,0))
12345.345-->NUMBER(5,-2)-->12300 (小数点左边两位做四舍五入)
12345678-->NUMBER(5,-2)-->Error (8-2>5)
123456789-->NUMBER(5,-4)-->123460000
1234567890-->NUMBER(5,-4)-->Error
12345.58-->NUMBER(*, 1)-->12345.6
0.1-->NUMBER(4,5)-->Error
0.01234567-->NUMBER(4,5)-->0.01235
0.09999-->NUMBER(4,5)-->0.09999
0.099996-->NUMBER(4,5)-->Error
☆
字符
字符,包括CHAR、VARCHAR2(VARCHAR)、LONG、NCHAR和NVARCHAR2几种类型。
CHAR,描述定长的字符串,如果实际值不够定义的长度,系统将以空格填充。它的声明方式如下CHAR(L),L为字符串长度,缺省为1,作为变量最大32767个字符,作为数据存储在ORACLE8中最大为2000。
VARCHAR2(VARCHAR),描述变长字符串。它的声明方式如下VARCHAR2(L),L为字符串长度,没有缺省值,作为变量最大32767个字节,作为数据存储在ORACLE8中最大为4000。在多字节语言环境中,实际存储的字符个数可能小于L值,例如:当语言环境为中文(SIMPLIFIED CHINESE_CHINA.ZHS16GBK)时,一个VARCHAR2(200)的数据列可以保存200个英文字符或者100个汉字字符。
LONG,在数据库存储中可以用来保存高达2G的数据,作为变量,可以表示一个最大长度为32760字节的可变字符串。
NCHAR、NVARCHAR2,国家字符集,与环境变量NLS指定的语言集密切相关,使用方法和CHAR、VARCHAR2相同。
(varchar2是oracle提供的独特的数据类型,oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar。因为varchar是标准sql提供的数据类型,有可能随着sql标准的变化而改变,推荐用varchar2。)
(CHAR如果存放字母数字占1个字节,存放GBK编码的汉字存放2个字节,存放UTF-8编码的汉字占用3个字节;NCHAR根据所选字符集来定义存放字符的占用字节数,一般都为2个字节存放一个字符(不管字符或者汉字)。同理VARCHAR2与NVARCHAR2的区别。)
☆
行
行,包括RAW和LONG RAW两种类型。用来存储二进制数据,不会在字符集间转换。
RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。
LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节。
(raw这种格式可以用来保存较小的图形文件或带格式的文本文件,如Miceosoft Word文档。raw是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。long raw 无可变长二进制数据,最大长度是2GB。Oracle用这种格式来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件。在同一张表中不能同时有long类型和long raw类型,long raw也是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代)
☆
其他
日期,只有一种类型--DATE,用来存储时间信息,站用7个字节(从世纪到秒),绝对没有“千年虫”问题。
行标识,只有一种类型--ROWID,用来存储“行标识符”,可以利用ROWIDTOCHAR函数来将行标识转换成为字符。
布尔,只有一种类型--BOOLEAN,仅仅可以表示TRUE、FALSE或者NULL。
可信,只有一种类型--MLSLABEL,可以在TRUSTED ORACLE中用来保存可变长度的二进制标签。在标准ORACLE中,只能存储NULL值。
☆
复合(COMPOSITE)与引用(REFERENCE)【略】
☆
LOB
LOB变量主要是用来存储大量数据的数据库字段,最大可以存储4G字节的内容。主要有:
CLOB:和ORACLE7中的LONG类型相似,存储单字节字符数据。(别用来存中文)
NCLOB:用来存储定宽多字节字符数据。
BLOB:和LONG RAW相似,用来存储无结构的二进制数据。
BFILE:它用来允许ORACLE对数据库外存储的大型二进制文本进行只读形式的访问。
☆
附参考网址
http://database.ctocio.com.cn/tips/388/7012888.shtml
posted on 2008-03-25 22:53
破茧而出 阅读(887)
评论(0) 编辑 收藏 所属分类:
数据库