oracle的数据库对象.ppt

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

2、义词,私有同义词只能在其模式内访问,且不能与当前模式的对象同名。(比如scott用户的emp表,scott用户不能创建与emp同名的私有同义词),公有同义词可被所有的数据库用户访问。,同义词 3-2,CREATE 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 D

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

4、访问序列,通过序列的伪列来访问序列的值NEXTVAL 返回序列的下一个值CURRVAL 返回序列的当前值,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;,视图,视图以经过定制的方式显示来自一个或多个表的数据视图可以视为“虚拟表”或“存储的查询”创建视图所依据的表称为“基表”视图的优点有:提供了另外一种级别的表安全性隐藏的数据的复杂性简化的用户的SQL命令隔离基表结构的改变通过重命名列,从另一个角度提供数据,创建视图 3-1,Stud_details,Stud_v

6、iew,创建视图,CREATE VIEW stud_viewAS SELECT studno,studname,subnoFROM Stud_details;,创建视图 3-2,创建视图的语法:,CREATE OR REPLACE FORCE VIEW view_name(alias,alias.)AS select_statement,创建视图 3-3,使用 ORDER BY 子句创建视图,CREATE OR REPLACE VIEW ord_ven ASSELECT*FROM vendor_master ORDER BY venname;,创建带有错误的视图,CREATE FORCE VI

7、EW ven ASSELECT*FROM venmaster;,联接视图 2-1,Stud_details,Sub_details,CREATE 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,

8、orderno,odate,ostatusFROM vendor_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语句,在视图上也可以使用修改数据的DML语句,如INSERT、UPDATE和DELETE视图上的DML语句有如下限制:只能修改一个底层的基表如果修改违反了

9、基表的约束条件,则无法更新视图如果视图包含连接操作符、DISTINCT 关键字、集合操作符、聚合函数或 GROUP BY 子句,则将无法更新视图如果视图包含伪列或表达式,则将无法更新视图,键保留表,Stud_details,Sub_details,键保留表,因为 Studno 既是 Stud_details 中的主键,也是联接结果中的主键,Stud_details 为什么是键保留表?,联接视图,视图中可以使用单行函数、分组函数和表达式使用DROP VIEW语句删除视图,视图中的函数,CREATE VIEW item_view AS SELECT itemcode,LOWER(itemdesc)

10、item_descFROM itemfile;,SQL DROP VIEW toys_view;,索引 3-1,索引是与表相关的一个可选结构用以提高 SQL 语句执行的性能减少磁盘I/O使用 CREATE INDEX 语句创建索引在逻辑上和物理上都独立于表的数据Oracle 自动维护索引,索引 3-2,索引有各种类型,除了标准索引外,还有一些特殊类型的索引:,索引的类型,基于函数的索引,反向键索引,位图索引,唯一索引,组合索引,索引 3-3,SQL CREATE INDEX item_index ON itemfile(itemcode)TABLESPACE index_tbs;,创建标准索引

11、,重建索引,SQL ALTER INDEX item_index REBUILD;,删除索引,SQL DROP INDEX item_index;,唯一索引,SQL CREATE UNIQUE INDEX item_index ON itemfile(itemcode);,唯一索引确保在定义索引的列中没有重复值Oracle 自动在表的主键列上创建唯一索引使用CREATE UNIQUE INDEX语句创建唯一索引,组合索引,SQL CREATE INDEX comp_index ON itemfile(p_category,itemrate);,组合索引是在表的多个列上创建的索引索引中列的顺序是

12、任意的如果 SQL 语句的 WHERE 子句中引用了组合索引的所有列或大多数列,则可以提高检索速度,反向键索引反转索引列键值的每个字节通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上创建索引时使用REVERSE关键字,反向键索引,SQL CREATE INDEX rev_index ON itemfile(itemcode)REVERSE;,SQL ALTER INDEX rev_index REBUID NOREVERSE;,位图索引,SQL CREATE BITMAP INDEX bit_index ON order_master(orderno);,位图索引适合创建在低基数列上

13、位图索引不直接存储ROWID,而是存储字节位到ROWID的映射减少响应时间节省空间占用,基于函数的索引,SQL CREATE INDEX lowercase_idx ON toys(LOWER(toyname);,基于一个或多个列上的函数或表达式创建的索引表达式中不能出现聚合函数不能在LOB类型的列上创建创建时必须具有 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;,与索引有关的数据字典视图有:USER_INDEXES 用户创建的索引的信息USER_IND_COLUMNS 与索引相关的表列的信息,总结,同义词是现有数据库对象的别名序列用于生成唯一、连续的序号视图是基于一个或多个表的虚拟表索引是与表相关的一个可选结构,用于提高 SQL 语句执行的性能索引类型有标准索引、唯一索引、反向键索引、位图索引和基于函数的索引,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号