Oracle-数据库对象PPT课件_第1页
Oracle-数据库对象PPT课件_第2页
Oracle-数据库对象PPT课件_第3页
Oracle-数据库对象PPT课件_第4页
Oracle-数据库对象PPT课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库对象,2,回顾,锁用于保护多用户环境下被修改的数据锁分为两种级别,即行级锁和表级锁表分区允许将一个表划分成几部分,以改善大型应用系统的性能分区方法包括范围分区、散列分区、复合分区和列表分区分区维护操作包括添加、删除、截断、合并和拆分分区,3,目标,使用同义词使用序列创建视图创建索引,4,数据库对象简介,Oracle数据库对象又称模式对象数据库对象是逻辑结构的集合,最基本的数据库对象是表其他数据库对象包括:,数据库对象,同义词,序列,视图,索引,5,同义词3-1,同义词是现有对象的一个别名。简化SQL语句隐藏对象的名称和所有者提供对对象的公共访问同义词共有两种类型:,同义词,私有同义词,公有同义词,私有同义词只能在其模式内访问,且不能与当前模式的对象同名。,公有同义词可被所有的数据库用户访问。,6,同义词3-2,CREATESYNONYMempFORSCOTT.emp;,SCOTT.emp的别名,模式名,表名,私有同义词,公有同义词,CREATEPUBLICSYNONYMemp_synFORSCOTT.emp;,同义词名称,7,同义词3-3,创建或替换现有的同义词,CREATEORREPLACESYNONYMemp_synFORSCOTT.emp;,替换现有的同义词,SQLDROPSYNONYMemp;,SQLDROPPUBLICSYNONYMemp_syn;,删除同义词,8,序列,序列是用于生成唯一、连续序号的对象序列可以是升序的,也可以是降序的使用CREATESEQUENCE语句创建序列,SQLCREATESEQUENCEtoys_seqSTARTWITH10INCREMENTBY10MAXVALUE2000MINVALUE10NOCYCLECACHE10;,指定第一个序号从10开始,指定序号之间的间隔为10,表示序列的最大值为2000,表示序列的最小值为10,在达到最大值后停止生成下一个值,指定内存中预先分配的序号数,9,访问序列,通过序列的伪列来访问序列的值NEXTVAL返回序列的下一个值CURRVAL返回序列的当前值,SQLINSERTINTOtoys(toyid,toyname,toyprice)VALUES(toys_seq.NEXTVAL,TWENTY,25);SQLINSERTINTOtoys(toyid,toyname,toyprice)VALUES(toys_seq.NEXTVAL,MAGICPENCIL,75);,指定序列的下一个值,SQLSELECTtoys_seq.CURRVALFROMdual;,检索序列的当前值,10,更改和删除序列,SQLALTERSEQUENCEtoys_seqMAXVALUE5000CYCLE;,使用ALTERSEQUENCE语句修改序列,不能更改序列的STARTWITH参数,使用DROPSEQUENCE语句删除序列,SQLDROPSEQUENCEtoys_seq;,11,视图,视图以经过定制的方式显示来自一个或多个表的数据视图可以视为“虚拟表”或“存储的查询”创建视图所依据的表称为“基表”视图的优点有:提供了另外一种级别的表安全性隐藏的数据的复杂性简化的用户的SQL命令隔离基表结构的改变通过重命名列,从另一个角度提供数据,12,创建视图3-1,Stud_details,Stud_view,创建视图,CREATEVIEWstud_viewASSELECTstudno,studname,subnoFROMStud_details;,13,创建视图3-2,创建视图的语法:,CREATEORREPLACEFORCEVIEWview_name(alias,alias.)ASselect_statementWITHCHECKOPTIONWITHREADONLY;,14,创建视图3-3,使用WITHCHECKOPTION选项创建视图,CREATEORREPLACEVIEWpause_viewASSELECT*FROMorder_masterWHEREostatus=pWITHCHECKOPTIONCONSTRAINTchk_pv;,使用ORDERBY子句创建视图,CREATEORREPLACEVIEWord_venASSELECT*FROMvendor_masterORDERBYvenname;,创建带有错误的视图,CREATEFORCEVIEWvenASSELECT*FROMvenmaster;,15,联接视图2-1,Stud_details,Sub_details,CREATEVIEWStud_sub_viewASSELECTStudno,Studname,Submrks,SubnameFROMStud_details,Sub_DetailsWHEREStud_details.Subno=Sub_details.Subno;,Stud_sub_view,联接视图,16,联接视图2-2,创建外联接视图,CREATEVIEWven_ord_outj_viewASSELECTvm.vencode,venname,orderno,odate,ostatusFROMvendor_mastervm,order_masteromWHEREvm.vencode=om.vencode(+);,SELECTvm.vencode,venname,orderno,odate,ostatusFROMvendor_mastervmLEFTOUTERJOINorder_masteromONvm.vencode=om.vencode;,17,视图上的DML语句,在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE视图上的DML语句有如下限制:只能修改一个底层的基表如果修改违反了基表的约束条件,则无法更新视图如果视图包含连接操作符、DISTINCT关键字、集合操作符、聚合函数或GROUPBY子句,则将无法更新视图如果视图包含伪列或表达式,则将无法更新视图,18,键保留表,Stud_details,Sub_details,键保留表,因为Studno既是Stud_details中的主键,也是联接结果中的主键,Stud_details为什么是键保留表?,联接视图,19,视图中可以使用单行函数、分组函数和表达式使用DROPVIEW语句删除视图,视图中的函数,CREATEVIEWitem_viewASSELECTitemcode,LOWER(itemdesc)item_descFROMitemfile;,SQLDROPVIEWtoys_view;,20,索引3-1,索引是与表相关的一个可选结构用以提高SQL语句执行的性能减少磁盘I/O使用CREATEINDEX语句创建索引在逻辑上和物理上都独立于表的数据Oracle自动维护索引,21,索引3-2,索引有各种类型,除了标准索引外,还有一些特殊类型的索引:,索引的类型,基于函数的索引,反向键索引,位图索引,唯一索引,组合索引,22,索引3-3,SQLCREATEINDEXitem_indexONitemfile(itemcode)TABLESPACEindex_tbs;,创建标准索引,重建索引,SQLALTERINDEXitem_indexREBUILD;,删除索引,SQLDROPINDEXitem_index;,23,唯一索引,SQLCREATEUNIQUEINDEXitem_indexONitemfile(itemcode);,唯一索引确保在定义索引的列中没有重复值Oracle自动在表的主键列上创建唯一索引使用CREATEUNIQUEINDEX语句创建唯一索引,24,组合索引,SQLCREATEINDEXcomp_indexONitemfile(p_category,itemrate);,组合索引是在表的多个列上创建的索引索引中列的顺序是任意的如果SQL语句的WHERE子句中引用了组合索引的所有列或大多数列,则可以提高检索速度,25,反向键索引反转索引列键值的每个字节通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上创建索引时使用REVERSE关键字,反向键索引,SQLCREATEINDEXrev_indexONitemfile(itemcode)REVERSE;,SQLALTERINDEXrev_indexREBUIDNOREVERSE;,26,位图索引,SQLCREATEBITMAPINDEXbit_indexONorder_master(orderno);,位图索引适合创建在低基数列上位图索引不直接存储ROWID,而是存储字节位到ROWID的映射减少响应时间节省空间占用,27,索引组织表2-1,SQLCREATETABLEind_org_tab(vencodeNUMBER(4)PRIMARYKEY,vennameVARCHAR2(20)ORGANIZATIONINDEX;,索引组织表的数据存储在与其关联的索引中索引中存储的是行的实际数据,而不是ROWID基于主键访问数据CREATETABLE命令与ORGANIZATIONINDEX子句一起用于创建索引组织表,28,索引组织表2-2,普通表与索引组织表的比较,29,基于函数的索引,SQLCREATEINDEXlowercase_idxONtoys(LOWER(toyname);,基于一个或多个列上的函数或表达式创建的索引表达式中不能出现聚合函数不能在LOB类型的列上创建创建时必须具有QUERYREWRITE权限,SQLSELECTtoyidFROMtoysWHERELOWER(toyname)=doll;,30,索引中的分区,可以将索引存储在不同的分区中与分区有关的索引有三种类型:局部分区索引在分区表上创建的索引,在每个表分区上创建独立的索引,索引的分区范围与表一致全局分区索引在分区表或非分区表上创建的索引,索引单独指定分区的范围,与表的分区范围或是否分区无关全局非分区索引在分区表上创建的全局普通索引,索引没有被分区,31,获取索引的信息,SQLSELECTINDEX_NAME,TABLE_NAME,COLUMN_NAMEFROMUSER_IND_COLUMNSORDERBYINDEX_NAME,COLUMN_POSITI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论