oracle的数据库对象.ppt

上传人:人*** 文档编号:571915069 上传时间:2024-08-12 格式:PPT 页数:29 大小:379.51KB
返回 下载 相关 举报
oracle的数据库对象.ppt_第1页
第1页 / 共29页
oracle的数据库对象.ppt_第2页
第2页 / 共29页
oracle的数据库对象.ppt_第3页
第3页 / 共29页
oracle的数据库对象.ppt_第4页
第4页 / 共29页
oracle的数据库对象.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《oracle的数据库对象.ppt》由会员分享,可在线阅读,更多相关《oracle的数据库对象.ppt(29页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章数据库对象回顾q锁用于保护多用户环境下被修改的数据q锁分为两种级别,即行级锁和表级锁q表分区允许将一个表划分成几部分,以改善大型应用系统的性能q分区方法包括范围分区、散列分区、复合分区和列表分区q分区维护操作包括添加、删除、截断、合并和拆分分区目标q使用同义词q使用序列q创建视图q创建索引数据库对象简介 qOracle 数据库对象又称模式对象q数据库对象是逻辑结构的集合,最基本的数据库对象是表q其他数据库对象包括:数据库对象数据库对象 同义词序列视图索引同义词 3-1q同义词是现有对象的一个别名。q简化SQL语句q隐藏对象的名称和所有者q提供对对象的公共访问q同义词共有两种类型:同

2、义词私有同义词公有同义词私有同义词只能在其模式内访问,且不能与当前模式的对象同名。(比如scott用户的emp表,scott用户不能创建与emp同名的私有同义词)公有同义词可被所有的数据库用户访问。同义词 3-2CREATE SYNONYM emp FOR SCOTT.emp;SCOTT.emp的别名模式名表名私有同义词公有同义词CREATE PUBLIC SYNONYM emp_syn FOR SCOTT.emp;同义词名称同义词 3-3创建或替换现有的同义词CREATE OR REPLACE SYNONYM emp_syn FOR SCOTT.emp;替换现有的同义词SQL DROP SY

3、NONYM emp; SQL DROP PUBLIC SYNONYM emp_syn; 删除同义词序列q序列是用于生成唯一、连续序号的对象q序列可以是升序的,也可以是降序的q使用CREATE SEQUENCE语句创建序列SQL CREATE SEQUENCE toys_seqSTART WITH 10INCREMENT BY 10MAXVALUE 2000MINVALUE 10NOCYCLECACHE 10;指定第一个序号从 10 开始指定序号之间的间隔为 10表示序列的最大值为 2000表示序列的最小值为 10在达到最大值后停止生成下一个值指定内存中预先分配的序号数 访问序列q通过序列的伪列

4、来访问序列的值qNEXTVAL 返回序列的下一个值qCURRVAL 返回序列的当前值SQL INSERT INTO toys (toyid, toyname, toyprice) VALUES ( toys_seq.NEXTVAL, TWENTY, 25);SQL INSERT INTO toys (toyid, toyname, toyprice) VALUES ( toys_seq.NEXTVAL, MAGIC PENCIL, 75);指定序列的下一个值SQL SELECT toys_seq.CURRVAL FROM dual;检索序列的当前值更改和删除序列SQL ALTER SEQUEN

5、CE toys_seq MAXVALUE 5000 CYCLE;不能包含 start with参数值使用ALTER SEQUENCE语句修改序列,不能更改序列的START WITH参数使用DROP SEQUENCE语句删除序列SQL DROP SEQUENCE toys_seq;视图q视图以经过定制的方式显示来自一个或多个表的数据q视图可以视为“虚拟表”或“存储的查询”q创建视图所依据的表称为“基表”q视图的优点有:q提供了另外一种级别的表安全性q隐藏的数据的复杂性q简化的用户的SQL命令q隔离基表结构的改变q通过重命名列,从另一个角度提供数据创建视图 3-1studnostudnamestu

6、dmarkssubnostudcaste1Rob452Open2James334SC3Jesica405OpenStud_detailsStud_viewstudnostudnamesubno1Rob22James43Jesica5创建视图CREATE VIEW stud_viewAS SELECT studno, studname, subnoFROM Stud_details;创建视图 3-2q创建视图的语法: CREATE OR REPLACE FORCE VIEW view_name (alias, alias.) AS select_statement创建视图 3-3使用 ORDER

7、 BY 子句创建视图CREATE OR REPLACE VIEW ord_ven ASSELECT * FROM vendor_master ORDER BY venname;创建带有错误的视图CREATE FORCE VIEW ven ASSELECT * FROM venmaster;联接视图 2-1StudnoStudnameSubmrksSubno1Rob4522James3343Jesica404SubnoSubname2English4Maths5ScienceStud_detailsSub_detailsStudnoStudnameSubmrksSubname1Rob45Engl

8、ish2James33Maths3Jesica40MathsCREATE VIEW Stud_sub_view ASSELECT Studno, Studname, Submrks, SubnameFROM Stud_details, Sub_Details WHERE Stud_details.Subno=Sub_details.Subno;Stud_sub_view联接视图联接视图 2-2创建外联接视图CREATE VIEW ven_ord_outj_view ASSELECT vm.vencode, venname, orderno, odate, ostatusFROM vendor_

9、master vm, order_master omWHERE vm.vencode = om.vencode(+);SELECT vm.vencode, venname, orderno, odate, ostatusFROM vendor_master vm LEFT OUTER JOIN order_master omON vm.vencode = om.vencode;视图上的DML语句q在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETEq视图上的DML语句有如下限制:q只能修改一个底层的基表q如果修改违反了基表的约束条件,则无法更新视图q如果视图包含连

10、接操作符、DISTINCT 关键字、集合操作符、聚合函数或 GROUP BY 子句,则将无法更新视图q如果视图包含伪列或表达式,则将无法更新视图键保留表StudnoStudnameSubmrksSubno1Rob4522James3343Jesica404SubnoSubname2English4Maths5ScienceStud_detailsSub_detailsStudnoStudnameSubmarksSubnoSubname1Rob452English2James334Maths3Jesica404Maths键保留表因为 Studno 既是 Stud_details 中的主键,也是联

11、接结果中的主键 Stud_details 为什么是键保留表?联接视图q视图中可以使用单行函数、分组函数和表达式q使用DROP VIEW语句删除视图视图中的函数CREATE VIEW item_view AS SELECT itemcode, LOWER(itemdesc) item_descFROM itemfile; SQL DROP VIEW toys_view; 索引 3-1q索引是与表相关的一个可选结构q用以提高 SQL 语句执行的性能q减少磁盘I/Oq使用 CREATE INDEX 语句创建索引q在逻辑上和物理上都独立于表的数据qOracle 自动维护索引索引 3-2q索引有各种类型

12、,除了标准索引外,还有一些特殊类型的索引:索引的类型基于函数的索引反向键索引位图索引唯一索引组合索引索引 3-3SQL CREATE INDEX item_index ON itemfile (itemcode) TABLESPACE index_tbs;创建标准索引重建索引SQL ALTER INDEX item_index REBUILD; 删除索引SQL DROP INDEX item_index; 唯一索引SQL CREATE UNIQUE INDEX item_index ON itemfile (itemcode);q唯一索引确保在定义索引的列中没有重复值qOracle 自动在表的

13、主键列上创建唯一索引q使用CREATE UNIQUE INDEX语句创建唯一索引组合索引SQL CREATE INDEX comp_index ON itemfile(p_category, itemrate);q组合索引是在表的多个列上创建的索引q索引中列的顺序是任意的q如果 SQL 语句的 WHERE 子句中引用了组合索引的所有列或大多数列,则可以提高检索速度q反向键索引反转索引列键值的每个字节q通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上q创建索引时使用REVERSE关键字反向键索引SQL CREATE INDEX rev_index ON itemfile (itemco

14、de) REVERSE;SQL ALTER INDEX rev_index REBUID NOREVERSE;位图索引SQL CREATE BITMAP INDEX bit_index ON order_master (orderno);q位图索引适合创建在低基数列上q位图索引不直接存储ROWID,而是存储字节位到ROWID的映射q减少响应时间q节省空间占用基于函数的索引SQL CREATE INDEX lowercase_idx ON toys (LOWER(toyname);q基于一个或多个列上的函数或表达式创建的索引q表达式中不能出现聚合函数q不能在LOB类型的列上创建q创建时必须具有

15、QUERY REWRITE 权限SQL SELECT toyid FROM toys WHERE LOWER(toyname)=doll;获取索引的信息SQL SELECT INDEX_NAME, TABLE_NAME, COLUMN_NAME FROM USER_IND_COLUMNS ORDER BY INDEX_NAME, COLUMN_POSITION;q与索引有关的数据字典视图有:qUSER_INDEXES 用户创建的索引的信息qUSER_IND_COLUMNS 与索引相关的表列的信息总结q同义词是现有数据库对象的别名q序列用于生成唯一、连续的序号q视图是基于一个或多个表的虚拟表q索引是与表相关的一个可选结构,用于提高 SQL 语句执行的性能q索引类型有标准索引、唯一索引、反向键索引、位图索引和基于函数的索引

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号