oracle基础作业1

SQL 题
已知关系模式:
 S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
 C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号, CNAME 为课程名,CTEACHER 为任课教师
 SC(SNO,CNO,SCGRADE) 选课关系,SCGRADE 为成绩。
 
 1>. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
 
select  a.sname  ,avg(SCGRADE)
from S a ,SC b
where a.sno =b.sno and SCGRADE < 60
group by a.sname 
having count(b.sno) >=2 


 2>. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
   
  select a.sname from 
(  select a.sname   ,a.sno  
   from S a ,  SC b 
   where a.sno =b.sno  and  b.cno='1')  a,
 (  select a.sname   ,a.sno  
   from S a ,  SC b 
   where a.sno =b.sno  and  b.cno='2' )b
   where a.sname=b.sname
  
 
 3>. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
      
  select  a.cno ,a.scgrade ,a.sno from 
 (select scgrade ,cno ,sno from sc where cno ='1') a ,
   (select scgrade ,cno  ,sno from sc where cno ='2') b
where  a.scgrade >b.scgrade   
 


 4>. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩
 
 
      select  a.scgrade, a.cno
from  SC a 
where a.sno in (
        (select  a.sno  from
 (select scgrade ,cno,sno  from sc where cno ='1') a ,
   (select scgrade ,cno ,sno from sc where cno ='2') b 
            where  a.sno =b.sno
and  a.scgrade >b.scgrade  )  )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值