在dept表的dname列上创建一个唯一索引。
Create unique index D_dname on dept(dname);
在emp表的job列上创建一个位图索引。
create bitmap index D_job on emp(job);
在emp表的ename列上创建一个非唯一B树索引ind_ename。
create index ind_ename on emp(ename);
在emp表的deptno和job列上创建复合索引。
Create index de_index_job on emp(deptno,job);
观察索引ind_ename的使用情况,写出命令序列。
alter index ind_ename monitoring usage;
合并索引ind_ename中的碎片。
alter index ind_ename coalesce;
将索引ind_ename的名字改为ind_emp_ename。
alter index ind_ename rename to ind_emp_ename;
删除索引ind_ename。
Drop index ind _ename;
查看scott模式下emp表上的所有索引的索引名和索引类型。 select index_name,index_type from user_indexes where table_name='emp';
创建一个视图用来限制某个用户, 使他只能查询emp表中sal和comm列。
create view v_sc as select sal,comm from emp;
创建一个视图用来限制某个用户,
使他只能查询emp表中销售部的销售员的信息。
create view V_sl as select * from emp where job='sales';
创建一个视图用来限制某个用户, 使他只能查询emp表中员工的工资总和。
create view V_Ssal(sumsal) as select sum(sal) from emp;
创建一个视图用来限制某个用户,
使他只能查询emp表中员工普通职员的人事信息: empno、ename、job、mgr、hiredate、deptno。 (普通职员指不是总裁也不是管理者的 员工) create view V_common as select * from emp
where job='sales' or job=’clerk’;
在scott模式下创建一个cls_deptno,类型为NUMBER(2)。 然后利用该簇创建emp1和dept1两个簇表,
结构与emp和dept表同。
create cluster cls_deptno(deptno number(2)); create table emp1( empno number(4) , ename varchar(10), job varchar(9), mgr number(4), hiredate date,
sal number(7,2), comm number(7,2), deptno number(2)) cluster cls_deptno(deptno); create table dept1( deptno number(2), dname varchar2(14), loc varchar2(13)) cluster cls_deptno(deptno);
在emp1表中插入一条记录(7396,SMITH,CLERK, 7902,1980-12-17,800,200,20)。 insert into emp1
values(7396,'SMITH','CLERK',7902,'17-12-1980’,800,200,20); 思考题
⑴为了提高SELECT ENAME FROM EMP WHERE JOB=’MANAGER’;的查询速度, 应在EMP表的哪列上创建什么类型的索引?
⑵为了简化查询SELECT D.DNAME, MAX(SAL),MIN(SAL),TRUNC(AVG(SAL)) FROM SCOTT.EMP E,SCOTT.DEPT D
WHERE E.DEPTNO=D.DEPTNO GROUP BY D.DNAME;应创建什么视图?
⑶怎样提高SELECT D.DNAME,E.ENAME FROM EMP E,DEPT D
WHERE E.DEPTNO=D.DEPTNO; 的查询速度?
剩余时间做实验二的控制文件的备份、创建多路控制文件、重建控制文件。