我是靠谱客的博主 受伤鸭子,最近开发中收集的这篇文章主要介绍Oracle练习题(七)Oracle练习题(七),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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练习题(七)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部