数据库orcal学习教程.pptx

上传人:莉*** 文档编号:88349173 上传时间:2023-04-25 格式:PPTX 页数:95 大小:243.90KB
返回 下载 相关 举报
数据库orcal学习教程.pptx_第1页
第1页 / 共95页
数据库orcal学习教程.pptx_第2页
第2页 / 共95页
点击查看更多>>
资源描述

《数据库orcal学习教程.pptx》由会员分享,可在线阅读,更多相关《数据库orcal学习教程.pptx(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、安装篇安装篇略第1页/共95页Oracle简介简介Oracle是一种基于对象关系数据库管理系统(RDBMS)。它提供了关系数据库系统和面向对象数据库系统这二者的功能。Oracle产品基于一种称为“客户机/服务器技术”的概念。此概念将应用程序的处理在两个系统之间划分。其中一个系统执行与数据库(服务器)相关的所有活动,而另一个系统执行有助于用户与应用程序(客户机)进行交互的活动。Oracle使用Internet文件系统,是一种基于Java的应用程序,可以使数据库成为基于Internet的开发平台。可以使用已开发的Oracle InterMedia Audio,Image和Video的Java客户机

2、应用程序来操纵和修改存储在可通过网络访问的数据库中的多媒体数据。经过一定 时间间隔收集到的数据通过时间序列自然地相互关联,时间序列可以在Oracle中有效地存储。一般数据库都包含下列组件:DataBase File(数据库文件)Control File(控制文件)Redo Log File(恢复日志文件)Tablespace(表空间)Segments(段)Extents(数据区)第2页/共95页物理组件物理组件数据库的物理组件是组成数据库的操作系统文件。Oracle数据库的这些文件为数据库信息提供了实际数据存储空间。这些文件有三种:数据库文件或数据文件:RDBMS由一个或多个数据库文件组成,这

3、些文件包括所有数据库数据。逻辑数据库结构的数据存储在这些文件中。数据文件只可以属于一个数据库,一个或多个数据文件形成一个逻辑单位,此逻辑单位称为表空间。数据文件可与一个而且只能与一个表空间相关。控制文件:控制文件存储数据库的物理结构,即与数据库相关的所有文件的信息。该信息包括:数据库的名称数据文件和恢复日志文件的名称及其位置时间戳恢复日志文件:恢复日志文件是操作系统文件集,由RDBMS用于记录对数据库所做的更改。该信息作为事务进程的一部分由数据库进行维护。每个事务都被记录到恢复日志文件中,这些文件也称为事务日志。数据库通常有两个或多个恢复日志文件。恢复日志文件以循环方式 式作。恢复日志工功能受

4、数据库运行的模式控制。数据库有下面两种模式运行(默认为不归档模式):NOARCHIVELOG MODE(不归档模式)ARCHIVELOG MODE(归档模式)第3页/共95页逻辑组件逻辑组件逻辑组件决定数据库中物理空间的使用。数据库有下列逻辑组件(表空间、段和数据区是逻辑结构,它们将决定模式对象物理存储空间的使用情况):Tablespace(表空间)Segement(段)Extents(数据区)Schema Objects(模式对象)第4页/共95页逻辑组件逻辑组件表空间表空间数据库由称为表空间的逻辑单位组成。一个数据库可以包含一个或多个表空间。表空间包含一组相关的数据库对象。Oracle中典

5、型的表空间:SYSTEM表空间:用于存储数据库管理自身所需的所有信息。即数据词典信息。DATA表空间:用于存储实际数据USER表空间:用于存储关于用户的信息TOOLS表空间:用于存储不同工具所需的数据库对象TEMP表空间:用于存储在大型排序操作过程中所创建的所有临时表。它一般在处理过程中用作缓冲存储空间第5页/共95页逻辑组件逻辑组件段段表空间中的逻辑单位形式上为段。表空间中的数据存储在分配的数据库空间(称为段)中。段被定义为给逻辑数据库结构分配数据区集。Oracle包括多种段类型:数据段索引段回滚段临时段第6页/共95页逻辑组件逻辑组件数据区数据区以数据区的形式分配所有类型段的空间。数据区由

6、一定数目的相邻数据块组成,段是数据区的集合。创建表时,Oracle将一定数目的数据块组成的初始数据区分配给表的数据段。Oracle按下面方式对指定段新增数据区的分配进行控制:Oracle使用下面算法,通过可用空间(在包含该段的表空间中)搜索与新增数据区大小相同或更大的第一个可用的相邻数据块集:Oracle搜索的相邻数据块要与新增数据区上一个块的大小相匹配,这样可减小内部碎片的出现(如果必要,该大小将四舍五入到该表空间最小数据区大小)。如果没有找到精确匹配值,Oracle将搜索比所需数量大的相邻数据块集。如果Oracle没有找到大小相同或更大的相邻数据块集,则它将组合相应表空间趾所有可用的相邻数

7、据块,形成更大的相邻数据块集。组合完表空间的数据块后,Oracle将重新执行上述两条中描述的搜索。如果第二次搜索完成后无法分配数据区,则Oracle将尝试通过自动扩展来调整文件的大小。如果Oracle无法调整文件的大小,则返回一个错误。一旦Oracle在表空间中找到并分配了必需的可用空间,则它将分配一部分与新增数据区大小相应的可用空间。如果Oracle找到了比数据区要求的可用空间大的可用空间,则Oracle将剩余部分保留为可用空间(5个或5个以上相邻块)Oracle更新段标题和数据词典,以显示新的数据区已经被分配而且分配的空间不再可用。第7页/共95页逻辑组件逻辑组件数据块数据块数据块代表数据

8、库存储粒度的最细级别。数据块大小定义为一定数目的字节数,此数目通常取决于操作系统。第8页/共95页Oracle的结构化查询工具的结构化查询工具Oracle提供的结构化查询工具对用户比较友好,主要SQL工具包含:SQL*PlusiSQL*PlusPL/SQLOracle支持下列SQL命令类别:数据定义语言:CREATE,ALTER,DROP数据操纵语言:INSERT,SELECT,DELETE,UPDATE事务处理控制语言:COMMIT,SAVEPOINT,ROLLBACK数据控制语言:GRANT,REVOKE第9页/共95页Oracle数据类型数据类型CharacterChar数据类型:需要固

9、定长度的字符串时,可以使用Char数据类型。此数据类型列长度可定义为1到2000个字节之间,列未指定大小,默认为1个字节。Varchar2数据类型:可变长度字符串,范围1到4000字节。Long数据类型:用于存储可变长度的字符,最大大小为2GB。Long数据类型的使用规则:表中只有一列可以为Long数据类型Long列不能定义为唯一主键约束不能在Long列上建立索引过程或存储过程不能接受Long数据类型作为参数第10页/共95页Oracle主要数据类型主要数据类型NumberNumber数据类型可以存储正数,负数,零,定点数以及精度为38的浮点数。数据格式是:number(p,s)。column

10、Name number-p=38,s=0columnName number(p)-定点columnName number(p,s)-浮点第11页/共95页Oracle主要数据类型主要数据类型DateDate数据类型用于在表中存储日期和时间。Oracle数据库使用自己的格式来存储数据,即使用七个字节的固定长度,每个字节分别代表世纪,月,日,年,小时,分,秒。存储日期的默认格式为“dd-mm-yy”Datetime数据类型:用于存储日期和时间值TIMESTAMP:此数据用于存储年月日日期值,以及时分秒时间值INTERVAL DAY TO SECOND:用于将时间存储为日时分秒的时间间隔INTERV

11、AL YEARTOMONTH:用于将时间存储为年月的时间间隔TIMESTAMPWITHTIMEZONE:表示日期和时间及时区TIMESTAMPWITHLOCALZOME:存储时将被规范化为数据库时区;而在检索数据时,数据将被调整为与客户机的时区相匹配。第12页/共95页Oracle主要数据类型主要数据类型raw和和Long RAWOracle支持下列两种用于存储二进制数据的数据类型:Raw数据类型:存储面向字节的数据,最大大小为2000,使用该数据类型时应指定其大小。Long Raw数据类型:存储可变长二进制数据,最大大小为2G。第13页/共95页Oracle主要数据类型主要数据类型LOBLO

12、B也称为Large Object数据类型,最大可达4G,此数据允许有效,随机,分段地访问数据。可以通过SQL DML或PL/SQL提供的名为DBMS_LOB的程序包修改LOB,表中可以有多列为LOB数据类型:CLOB:BLOBBFILE第14页/共95页数据定义语言数据定义语言表的定义:Create tableAlter tableTruncate tableDrop tableDESC table:查看表结构第15页/共95页数据定义语言数据定义语言create tableCreate table 用于创建表,其语法如下:Create table schema.table_name(Colu

13、mn datatypedefault expr,);Schema:表示对象所有者的姓名。Table_name:表示表的名称。Default:则用于指定插入时列的默认值。Column:表示列名。datatype:表示数据类型及长度。示例:Create table vendorMaster(vencode varchar2(5),Venname varchar2(20),Venadd1 varchar2(20),Venadd2 varchar2(20),Venadd3 varchar2(20);命名规则:表名第一个字母应该是字母表中的字母Oracle保留字 不能用来对表命名表名最大长度=30字符两

14、个不同的表不能有相同的名字可以使用下划线、数字和字母,但不能使用空格和单引号。如果使用双引号对表进行命名。则要区别大小写第16页/共95页数据定义语言数据定义语言alter tableAlter table 用于修改表的定义用于修改现有的列的定义:Alter table modify(column definition);用于对现有表中添加新的定义:Alter table add(column definition);Alter table 命名在下列情况下使用:用户要添加新的列要修改数据类型宽度或数据类型本身要包括或删除完整性约束条件示例:Alter table vendorMaster m

15、odify(venname varchar2(25);Aletr table venderMaster add(telNo number(12),tngstNo number(12);第17页/共95页数据定义语言数据定义语言drop columnOracle提供drop column命令从表中删除列示例:Alter table vendorMaster drop column tngstNo;删除大型表中的列可能很费时,一种较快的替代方法是使用alter table命令的set unused选项将此列标记为未用。如果要使用该列还可以添加与之名相同的列示例:Alter table vendor

16、Master set unused(telNo);第18页/共95页数据定义语言数据定义语言truncate table此命令用于删除表的数据而不删除表的结构语法:Truncate table 示例:Truncate table vendorMaster;Truncate table vendorMaster reuse storage;上面示例均会显示“表已截掉”的消息,但是如果不用reuse storage子句,Oracle会在内部收回被删除行所用的空间。第19页/共95页数据定义语言数据定义语言查看表的结构查看表的结构DESC table:用于查看表的结构示例:Desc vendorMa

17、ster;第20页/共95页数据定义语言数据定义语言drop table该命名用于删除数据库中的表,语法:Drop table 示例:Drop table vendorMaster;Drop table与truncate table的区别?第21页/共95页数据操纵语言数据操纵语言数据操纵命令是使用最频繁SQL命令:InsertSelectUpdatedelete第22页/共95页数据操纵语言数据操纵语言insert该命名用于向表中插入数据,语法:Insert into table(column,column,)values(value,value,);示例:Insert into vendo

18、rMaster values(V001,John Smith,11 E Main St,West Avenue,Alabama,91723423);Insert into vendorMaster values(&vencode,&venname,&venadd1,&venadd2,&venadd3,&telNo);在执行该命令时,Oracle会提示用户为表的所有列输入值。Insert into vendorMaster(vencode,venname,telNo)values(V003,Williams,2341234123);插入日期示例:Create table orderMaster(

19、orderno,Varchar2(5),odate DATE,vencode verchar2(5)ostatus CHAR(1),delDate DATE);Insert into orderMaster values(o001,12-may-10,v002,c,25-may-10);第23页/共95页数据操纵语言数据操纵语言selectSELECT命名用以查询表中的数据,语法:SELECT*|DISTINCT column|expression alias,FROM table;示例:SqlSELECT*FROM vendorMaster;SQLSELECT vencode,venname

20、,telNo FROM vendorMaster;选择不同的行:要防止选择重复的行,请在SELECT命令中包含DISTINCT子句。示例:SQLSELECT DISTINCT vencode FROM vendorMaster;带有WHERE子句的SELECT命令,语法:SELECT*|DISTINCT column|expression alias,FROM tableWHERE condition(s);示例:SELECT*FROM orderMaster WHERE vencode=V004 ORDER BY delDate;第24页/共95页数据操纵语言数据操纵语言update该命令用

21、于更新表中数据,语法:UPDATE tableSET column=value,column=value,WHERE condition;示例:UPDATE vendorMaster SET telNo=2234523 WHERE vencode=V002;第25页/共95页数据操纵语法数据操纵语法delete该命令用于删除表中记录,语法:DELETE FROMtable WHERE condition;示例:SQLDELETE FROM orderMaster WHERE orderno=O006;第26页/共95页事务处理和数据控制命令事务处理和数据控制命令事务处理是作业的逻辑单元。对数据

22、库所做的所有修改都称为事务处理。COMMITSAVEPOINTROLLBACK第27页/共95页事务处理和数据控制命令事务处理和数据控制命令COMMIT该命令用于提交事务,语法:COMMIT work;或COMMIT;SAVEPOINT该命令用于保存事务提交或回滚标记,语法:SAVEPOINT savepointId;ROLLBACK用于事务回滚,语法:ROLLBACK work;或ROLLBACK;或ROLLBACK TO SAVEPOINT savepointId;示例:SQLUPDATE orderMaster SET delDate=30-may-11 WHERE ordernoSAV

23、EPOINT mark1;SQLDELETE FROM orderMaster WHERE orderno=o0002;SQLSAVEPOINT mark2;SQLROLLBACK TO SAVEPOINT mark1;SQLROLLBACK;第28页/共95页事务处理和数据控制命令事务处理和数据控制命令数据控制数据控制数据控制语言为用户提供权限命令。数据库对象的所有者对这些对象拥有的权限。GRANT命令:用于给用户授权,语法:GRANT privileges ON objectName TO username;示例:SQLGRANT select,update ON orderMaster

24、TO warehouse;SQLGRANT update(qtyHand,reLevel)ON itemfile TO warehouse;SQLGRANT select ON vendorMaster TO accounts WITH GRANT OPTION;REVOKE命令:用于给用于撤消权限,语法:REVOKE privileges ON objectName FROM username;示例:SQLREVOKE select,update ON orderMaster FROM warehouse;第29页/共95页查询和查询和SQL函数函数不同的不同的SELECT语句语句创建表,语

25、法:Create table table as select column,column,from existing_table;通过在创建表命令中包含SELECT子句,使用一条语句即可创建表并将记录复制到此表中。示例:CREATE TABLE vendDetails AS SELECT*FROM vendorMaster;CREATE TABLE venMas(venid,name)AS SELECT vencode,venname FROM vendorMaster;CREATE TABLE list AS SELECT*FROM itemfile WHERE pCategory=spar

26、es;插入记录INTER INTO table(SELECT column_name FROM existing_table);CREATE TABLE orderMasCopy(orderno varchar2(5),odate date,vencode varchar2(5),ostatus char(1)delDate date);INSERT INTO orderMasCopy(SELECT*FROM orderMaster);列别名SELECTcolumn alias,column alias,FROM table_name;示例:SELECT vencode id FROM ven

27、dorMaster;第30页/共95页SQL*Plus中的操作符:算术操作符比较操作符逻辑操作符集合操作符连接操作符第31页/共95页操作符操作符算术操作符算术操作符该类操作符用于在数据库中执行算术运算示例:SELECT itemdest,maxLevel qtyHand“AVBLELIMITE”FROM itemfile WHERE pcategory=spares;SELECT itemdesc,itemrate*(maxLevel qtyHand)+itemrate*reLevel FROM itemfile WHERE pcategory=spares;第32页/共95页运算符运算符比

28、较运算符比较运算符用于将一个表达式与另一个表达式进行比较比较运算符包含:=,!=,=,between,in,like,is null示例:SELECT itemdesc,reLevelFROM itemfileWHERE qtyHandmaxLevel/2;SELECT itemdesc,reLevelFROM itemfileWHERE NOT qtyHand 10-may-10ANDdelDate 0 1-d e c-1 1 ;M o n t h s _ b e t w e e n示 例:S E L E C T m o n t h s _ b e t w e e n(d e l D a t

29、 e,o d a t e)F R O M o r d e r M a s t e r;R o u n d示 例:S E L E C T d e l D a t e,r o u n d(d e l D a t e,y e a r )F R O M o r d e r M a s t e rW H E R E v e n c o d e=V 0 0 1 ;S E L E C T d e l D a t e,r o u n d(d e l D a t e,m o n t h )F R O M o r d e r M a s t e rW H E R E v e n c o d e=V 0 0 1 ;

30、S E L E C T o d a t e,r o u n d(o d a t e,d a y )F R O M o r d e r M a s t e rW H E R E v e n c o d e=V 0 0 1 ;S E L E C T o d a t e,r o u n d(o d a t e)F R O M o r d e r M a s t e rW H E R E v e n c o d e=V 0 0 1 ;第40页/共95页Next_day示例:SELECT next_day(sysdate,3)F R O M d u a l;Truncate示例:SELECT trunc

31、(sysdate,year)F R O M d u a l;SELECT trunc(sysdate,month)F R O M d u a l;SELECT trunc(sysdate,day)F R O M d u a l;SELECT trunc(sysdate)F R O M d u a l;Greatest示例:SELECT delDate,sysdate,greatest(delDate,sysdate)F R O M o r d e r M a s t e rW H E R E o r d e r n o=O 0 0 1 ;New_time示例:SELECT new_time(1

32、3-feb-03,est,yst)F R O M d u a l;第41页/共95页函数函数字符函数字符函数Initcap(char)Lower(char)Upper(char)Ltrim(char,set)Rtrim(char,set)Translate(char,from,to)Replace(char,searchstring,rep string)Instr(char,m,n)Substr(char,m,n)Concat(expr1,expr2)LengthDecode第42页/共95页Soundex,示例:SELECT venname FROM vendorMasterWHERE s

33、oundex(venname)=soundex(james);Chr,示例:SELECT chr(67)FROM dual;Rpad,示例:SELECT rpad(function,15,=)FROM dual;Trim,示例:SELECT trim(leading 9 from 999987697097)FROM dual;在指定了leading时,此函数与Ltrim函数类似,并且Oracle删除与trim_character相等的任何前导字符。在指定了trailing时,此函数与Rtrim函数类似,并且Orcacle删除与trim_character相等的任何后续字符。当二者均指定时,Or

34、acle会删除与要剪掉的字符相等的前导字符。函数的默认状态既不指定leading,也不指定trailing.FROM dual;FROM dual;Length,示例:SELECT length(francel)FROM dual;第43页/共95页Decode,示例:SELECT decode()FROM;SELECT vencode,decode(venname,frances,Francis)nameFROM vendorMaster WHERE vencode=V001;第44页/共95页函数函数数字函数数字函数AbsCeil(n)Cos(n)Cosh(n)Exp(n)Floor(n)

35、Power(m,n)Mod(m,n)Round(m,n)Trunc(m,n)Sqrt(n)第45页/共95页函数函数转换函数转换函数To_char()To_date()To_number()第46页/共95页函数函数其他函数其他函数UidUserVsize第47页/共95页函数函数常规函数常规函数NVLNVL2NULLIFCOALESCE第48页/共95页函数函数分组函数分组函数AvgMinMaxSumCountGroup byHavingVariance第49页/共95页临时表临时表临时表是只在用户会话时存在的表,或其数据在用户事务处理期间可持续存在的表Create global tempo

36、rary table (column datatype,column datatype,)on commit delete rows/preserve rows;示例:CREATE GLOBAL TEMPORARY TABLE tempDept(dno number,dname varchar2(20)on commit preserve rows;将值插入到上面创建的dept表中并提交,插入的值仅在此特定会话中可用。第50页/共95页锁和表分区锁和表分区锁锁锁定概念锁类型:行级锁:Oracle可以通过使用insert,update,delete和select.For update语句自动获取

37、行锁表级锁:共享模式:共享锁将锁定表,仅允许其他用户查询表中的行,但不允许插入、更新或删除行共享更新模式排他锁模式第51页/共95页锁锁行级锁行级锁示例:SELECT*FROM orderMaster WHERE vencode=V002FOR UPDATE OF odate,delDate;UPDATE orderMaster SET delDate=31-jan-10WHERE vencode=V002FOR UPDATE WAIT 子句SELECT*FROM inventory.vendorMasterWHERE vencode=V004FOR UPDATE OF venname WAI

38、T 10;FOR UPDATE WAIT 优点防止无限期地等待锁定的行允许在应用程序中对锁的等待时间进行更多的控制对于交互式应用程序非常有用,因为这些用户不能等待不确定的时间间隔第52页/共95页锁锁表级锁表级锁种类:共享模式共享更新模式排他锁模式通用语法:LOCK TABLE IN;共享锁:LOCK TABLE orderMaster IN SHARE MODE;共享更新锁:LOCK TABLE itemfile IN SHARE UPDATE MODE;排他锁:LOCK TABLE itemfile IN EXCLUSIVE MOVE;Nowait:假设某个用户对表进行锁定时未在LOCK

39、TABLE命令中使用“NOWAIT”子句。如果另一位用户试图违反上述限制对此表进行锁定,那么他必须无限期地等待,直到最初锁定此表的用户发出COMMIT或ROLLBACK语句为止。通过在ROLLBACK命令中附加“NOWAIT”子句,可以避免这种延迟。示例:LOCK TABLE itemfile IN EXCLUSIVE MODE NOWAIT;第53页/共95页表分区表分区当表的数据量大时,如当表的大小超过2GB,仅对此数据的备份将花费5小时时间,当整个表在备份结束之前,都不能使用,而用户是不能接受如此长的中断时间。因此,应该寻找一种方法,能够对表进行部分备份,这样,每一部分的备份时间仅几分钟

40、。可以操纵表的其他部分,而不是整个表。为了便于此操作,Oracle提供了称为“分区”的功能。这个功能可以根据需要对表进行分区,并将这些分区存储在不同位置。将表拆分为更小且更便于管理的部分的方法称为“分区”。分区在通常存储和分析大量历史数据的数据仓库应用程序中尤为有用。可以基于键值的范围将单个逻辑表拆分为许多物理上独立的部分。其中的每一个部分称为一个“分区”。尽管这些分区被独立存储和管理,但通过引用逻辑表的名称,可以查询和更新这些分区。Oracle提供分区透明性。应用程序可以不知道表已被分区的事实。第54页/共95页表分区表分区分区方法分区方法可以将分区方法粗略地划分为两种类型:范围分区和散列分

41、区。在范围分区中,分区基于某个特定列或一组列的值范围。例如:ORDER_NO值为1至1000的在一个分区,而值为1001至2000的在另一分区,等等。在散列分区中,数据基于Hash函数进行分区。还有一种称为“复合分区”的分区类型,在这种分区中,数据首先基于范围分区进行分区,然后使用Hash函数进一步划分为子分区。第55页/共95页表分区表分区逻辑属性和物理属性逻辑属性和物理属性已分区表由许多具有相同逻辑属性的部分组成。例如,表的所有分区共享逻辑属性(如列各约束条件的定义),但同一表的不同分区可以具有不同的物理属性(如存储规范)。与分区一样,表的所有子分区具有相同的逻辑属性。但与分区不同的是,同

42、一个分区的子分区不能具有不同的物理属性。具有单个分区的表和没有分区的表之间存在差别。非分区表以后不能进行分区。每个分区都存储在不同的段中,并且具有不同的物理属性。可以选择将表分区存储在不同的表空间中。Oracle还提供分区独立性。即使某些分区或其他所有分区都 不可用,也可以访问和操纵某一个分区中的数据。这对于管理员和类似的用户都有很大好处;这意味着他们可以对各分区逐个执行维护操作,而其他数据仍然可用。Oracle数据库由一个或多个称为“表空间”的逻辑存储单元组成,这些表空间共同存储数据库的所有数据。Oracle数据库中的每个表空间由一个或多个称为“数据文件”的文件组成,这些数据文件是与运行Or

43、acle的操作系统一致的物理结构。将分区存储在不同的表空间中具有下列优点:减少所有分区的数据同时损坏的可能性可以独立地备份和恢复每个分区可以控制分区到磁盘驱动器的映射。可以将数据跨不同的磁盘驱动器进行分布,以便使I/O负载均等地分布第56页/共95页表分区表分区表分区的优点表分区的优点对表进行分区有两个主要原因:即磁盘空间和处理时间。通过对表进行分区,可以减少故障单元的大小。故障单元从表的大小减少到最大分区的大小。Oracle分区支持还是内置在服务器中的唯一机制,这种机制能够实现并行的更新和删除操作。对于要最优使用的并行操作,应用程序必须具有执行大规模的、基于集的更新或删除操作的事务处理,并且

44、不需要涉及此事务处理中的任何其他表。除此之外,它还提供以下支持:超大数据库(Very Large Data Bases,VLDB)-超大型数据库包含几百GB甚至几TB的数据。分区支持通常包含结构化数据而不是非结构化数据的VLDB。缩短计划维护的停工期 分区允许对选定的分区执行维护操作,而其他分区对于用户仍然可用。缩短由于数据故障造成的停工期 特定分区不能提供数据决不会影响其他分区。简而言之,出现故障的分区中的数据不可用,但其他分区仍然允许访问数据。这证明了与整个表发生故障对比,表分区具有很大的优点。分区独立性允许同时将各种分区用于各种用途。分区透明性 程序应不受它们所访问的数据是否已分区以及如

45、何分区的影响。数据类型限制:已分区表不能具有LONG或LONG RAW数据类型的列。如果按具有DATE数据类型的列进行了分区,则分区描述必须使用TO_DATE函数完整地指定年份;否则将无法创建表。如:TO_DATE(12-01-1999,DD-MON-YYYY);第57页/共95页表分区表分区范围分区范围分区范围分区基于列值的范围将行映射到分区。范围分区由表的分区规范:PA RT I T I O N BY R A N G E(c o l u m n _ l i s t)以 及 每 个 分 区 的 分 区 规 范 进 行 定 义:VA LU E S L E S S T H E N(va l u

46、e _ l i s t);C o l u m n _ l i s t 是 由 确 定 行 条 目 所 属 分 区 的 列 组 成 的 有 序 列 表。这 些 列 称 为“分 区 列”。Va l u e _ l i s t 是 c o l u m n _ l i s t 中 列 值 的 有 序 列 表。Va l u e _ l i s t 中 的 每 个 值 都 必 须 是 一 个 文 字,或 者 是 带 有 常 量 参 数 的 TO _ DAT E 或 R PA D 函 数。包 含 在 每 个 分 区 的 分区 规 范 中 的 va l u e _ l i s t 定 义 分 区 的 开 放(

47、非 包 含)上 界,称 为“分 区 边 界”。每 个 分 区 的 分 区 边 界 必 须 小 于 下 一 个 分 区 的 分 区 边 界。在 每 个 分 区 中,所 有 行 都 有 小 于该 分 区 的 分 区 边 界 的 分 区 键。如 果 分 区 不 是 表 中 的 第 一 个 分 区,则 它 的 所 有 分 区 键 还 将 大 于 或 等 于 前 一 个 分 区 的 分 区 边 界。对 表 进 行 分 区 的 语 法:C R E AT E TA B L E (c o l u m n N a m e d a t a Ty p e,c o l u m n N a m e d a t a Ty

48、 p e,)PA R T I T I O N B Y R A N G E(c o l u m n N a m e)(PA R T I T I O N VA L U E S L E S S T H A N ,PA R T I T I O N VA L U E S L E S S T H A N );示 例:S Q L C R E AT E TA B L E e m p 1(e m p N o N U M B E R(4),E n a m e VA R C H A R 2(1 0),J o b VA R C H A R 2(9),M g r VA R C H A R 2(4),H i r e d

49、a t e D AT E,S a l N U M B E R(7,2),C o m m N U M B E R(7,2),D e p t n o N U M B E R(2)PA R T I T I O N B Y R A N G E(e m p n o)(PA R T I T I O N p 1 VA L U E S L E S S T H A N (2 5 0),PA R T I T I O N p 2 VA L U E S L E S S T H A N (5 0 0);注 释:使 用 已 分 区 表 的 缺 点 之 一 是,表 中 不 能 有 用 户 定 义 的 类 型。在 创 建 带

50、 有 分 区 的 表 时 应 注 意 这 一 点第58页/共95页表分区表分区散列分区散列分区如果预先不知道将有多少数据要映射到指定范围,或范围分区的大小有很大差异,则选择散列分区要比选择范围分区好。分区数目应该是2的幂(2,4,8等等),以获取最平均的数据分布。可以对散列分区进行命名,并将散列分区存储在特定的表空间中。语法:CREATE TABLE()PARTITION BY HASH(columnList)PARTITIONS(PARTITION TABLESPACE,PARTITON TABLESPACE);示例:SQLCREATE TABLE dept1(Deptno NUMBER(2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁