oracle课外练习3

create table sporter(
  sporterid number,
  name varchar2(20),
  sex varchar2(5),
  department varchar2(20)
);
insert into sporter values(1001,'李盼','女','计算机系');
insert into sporter values(1002,'王玥','女','数学系');
insert into sporter values(1003,'丁赛','男','计算机系');
insert into sporter values(1004,'汪丽','女','物理系');
insert into sporter values(1005,'李娜','女','心理系');
insert into sporter values(1006,'王骋','女','化学系');
select * from sporter;

create table item(
  itemid varchar2(20),
  itemname varchar2(20),
  loc varchar2(50)
);

insert into item values('x001','男子五千米','一操场');
insert into item values('x002','男子标枪','一操场');
insert into item values('x003','男子跳远','二操场');
insert into item values('x004','女子跳高','二操场');
insert into item values('x005','女子三千米','三操场');

select* from item;

create table grade(
 sporterid number,
 itemid varchar2(20),
 mark number
);
insert into grade values(1001,'x001',6);
insert into grade values(1002,'x001',4);
insert into grade values(1003,'x001',2);
insert into grade values(1004,'x001',0);
insert into grade values(1001,'x003',4);
insert into grade values(1002,'x003',6);
insert into grade values(1004,'x003',2);
insert into grade values(1004,'x004',6);
insert into grade values(1006,'x004',4);

select * from grade;

1.求出总积分最高的系名及总积分
select * from(
select s.department,sum(g.mark) 
from sporter s,grade g
where s.sporterid = g.sporterid 
group by s.department
order by sum(g.mark) desc )
where rownum=1;
2.查询在一操场进行比赛的项目名称及其冠军的姓名
select *from(
select i.itemname,s.name,g.mark
from sporter s,item i,grade g
where i.itemid=g.itemid and s.sporterid = g.sporterid
and i.loc='一操场' 
order by g.mark desc)
where rownum = 1;

3.找出参加了王玥所参加过的项目的其他同学的姓名
select distinct s.name 
from sporter s,grade g
where s.sporterid=g.sporterid
and g.itemid in(
       select i.itemid
       from sporter s,item i,grade g
       where s.sporterid=g.sporterid 
       and i.itemid=g.itemid 
       and s.name='王玥')
  and s.name<>'王玥';
4.经查,王玥因为使用了违禁药品,其成绩都记为0分,请在数据库中做出相应修改
update grade set mark = 0 where sporterid=1002;

5.经组委会协商,需要删除女子跳高比赛项目
delete from item where itemid='x004';
 

猜你喜欢

转载自blog.csdn.net/ghhcngc/article/details/81082465