首页 养生问答 疾病百科 养生资讯 女性养生 男性养生
您的当前位置:首页正文

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

2024-09-01 来源:华佗健康网
实验七 索引-视图-序列-同义词

实验目的:

本次实验旨在使学生正确理解数据库模式对象:索引、视图、序列、同义词的定义、作用和管理的操作。 实验要求:

创建序列并掌握序列的正确使用方法。

为表创建索引并与没有创建索引的表的查询效率做比较。

创建一个基于单表和一个基于两个表的视图,并比较两个视图在做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;

WHILE seq_start < 100000 LOOP

insert into noindex(id) values(seq_test.nextval); BEGIN

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 /

执行计划查询:

对无索引的表进行查询: explain plan for

select * from noindex where id = 10000 查看执行计划

select * from table(dbms_xplan.display()) 主要是查看cpu开销和执行时间 对有索引的表进行同样的查询,然后再查看执行计划,比较它们之间的cpu开销和执行时间

WHILE seq_start < 100000 LOOP

insert into bindex(id) values(seq_test.nextval); seq_start := seq_start + 1; END LOOP;

END;

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;

因篇幅问题不能全部显示,请点此查看更多更全内容