当前位置:首页 >> IT/计算机 >>

实验7-索引-视图-序列-同义词

实验七 索引-视图-序列-同义词 实验目的: 本次实验旨在使学生正确理解数据库模式对象:索引、视图、序列、同义词的定义、作用和 管理的操作。 实验要求: 创建序列并掌握序列的正确使用方法。 为表创建索引并与没有创建索引的表的查询效率做比较。 创建一个基于单表和一个基于两个表的视图,并比较两个视图在做 DML 操作时的区别。 创建同义词并理解在编程中使用同义词的优点。 实验环境: Oracle 10g 实验步骤: 首先使用 scott 帐户登录数据库: 创建一个序列,开始值是 1,增量值是 1,最大值是 99999,达到最大值之后可以重复,使 用 10 个序列预分配。 创建一个没有索引的表,并做 insert 的操作,该操作要使用序列 创建一个基于 emp 的视图 v_emp,该视图只包含 empno 和 ename 属性,然后对 v_emp 进行 DML 的操作。 创建一个基于 emp 和 dept 表的视图,该视图包含 empno、ename 和 dname(员工所在部门名 称),并对该视图进行 DML 的操作。 创建一个同义词并使用它。 Create SEQUENCE seq_test start with 1 increment by 1 maxvalue 99999 cycle cache 10; -- 使用序列要使用的语句是: seq_test.nextval -- 检测序列的当前值得语句是: seq_test.currval 创建一个没有索引的表: create table noindex (id number(5), name char(13) default 'software dept', day date default (sysdate) ) 使用循环插入 100000 记录 DECLARE seq_start NUMBER :=1; BEGIN WHILE seq_start < 100000 LOOP insert into noindex(id) values(seq_test.nextval);

seq_start := seq_start + 1; END LOOP; END; / 创建一个有 b 树索引的表: create table bindex (id number(5) primary key, name char(13) default 'software dept', day date default (sysdate) ) 使用循环插入 100000 记录 DECLARE seq_start NUMBER :=1; BEGIN WHILE seq_start < 100000 LOOP insert into bindex(id) values(seq_test.nextval); seq_start := seq_start + 1; END LOOP; END; / 执行计划查询: 对无索引的表进行查询: explain plan for select * from noindex where id = 10000 查看执行计划 select * from table(dbms_xplan.display()) 主要是查看 cpu 开销和执行时间 对有索引的表进行同样的查询,然后再查看执行计划, 比较它们之间的 cpu 开销和执行时间

create view v_emp as select empno, ename from emp; 对视图 v_emp 进行 DML 操作: insert into v_emp values (2000,'cns'); select * from v_emp where empno = 2000; update v_emp set ename = 'chen' where empno = 2000; create view v_emp_dept as select e.empno,e.ename,d.dname from emp e inner join dept d on e.deptno = d.deptno;

对视图 v_emp_dept 进行 DML 操作,有什么错误发生? Create synonym syn_dept for dept; select * from syn_dept;


相关文章: