概述
Oracle练习题(七)
(1) 创建表student(sno,sname,sage,ssex,address) 其中sno为主键,并使用序列自动生成sno。
create table student(
sno number(10),
sname varchar2(10) not null ,
sage number(3) not null,
ssex varchar2(3) not null,
address varchar2(20) not null,
constraint pk_sno primary key(sno)
);
create sequence seq_stu start with 1 increment by 1 maxvalue 9999 minvalue 1 nocache cycle;
create or replace trigger tri_stu before insert on student for each row
begin
select seq_stu.nextval into :new.sno from dual;
end;
(2) 创建表course(cno,cname,credit)其中cno为主键
create table course(
cno number(10) primary key,
cname varchar2(10) not null,
credit varchar2(10) not null
);
(3) 创建表sc(sno,cno,grade) 其中sno + cno为主键分别参照student和course表
create table sc(
sno number(10) not null,
cno number(10) not null,
grade varchar2(20) not null,
constraint fk_sno foreign key(sno) references student(sno),
constraint fk_cno foreign key(cno) references course(cno)
);
(4) 在student表上以sage为索引字段创建索引,并对比查询语句 select * from student where sage=20在创建索引前后执行计划
--生成执行计划
explain plan for select * from student where sage=20;
--查看执行计划
select * from table(dbms_xplan.display);
--创建索引
create index ind_stu on student(sage);
--查看执行计划
没有添加索引之前
添加索引之后
(5) 创建一个100-2000、步长为5的循环序列。
create sequence seq_one start with 100 increment by 5 maxvalue 2000 minvalue 100 nocycle nocache;
(6) 为student表年龄超过20的人创建一个视图。
create view vi_stu as select * from student where sage>20 with check option;
(7) 创建一个物化视图,保存不同性别平均年龄,并对比创建前后查询不同性别平均年龄的执行计划。
create materialized view mv_stu as select avg(sage) avg_age from student group by ssex ;
创建物化视图前
创建物化视图后
最后
以上就是受伤鸭子为你收集整理的Oracle练习题(七)Oracle练习题(七)的全部内容,希望文章能够帮你解决Oracle练习题(七)Oracle练习题(七)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复