oracle作业二,Oracle作业

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

第五次

---1

select * from(select studno,avg(studscore) avgscore,count(*) countcourse

from studscoreinfo

group by studno

order by avgscore desc)

where rownum<=10

---2

select studno,studname,studsex,si.classid,classname from studinfo si,classinfo ci

where si.classid=ci.classid and studno in

(select studno from (select studno,avg(studscore) avescore

from studscoreinfo

group by studno

having count(*)>20

order by avescore desc)

where rownum<=10)

---3 不完整

select avg(studscore) avgscore,sum(studscore) sumscore,count(*) classcount,max(studscore) maxscore,min(studscore) minscore

from studscoreinfo si,courseinfo ci

where si.courseid=ci.courseid and coursetype in ('A','B','C','D11','D12')

---4

create view V_StudAvgScore

as

select si.studno,studname,

avg(studscore) as avgscore,

sum(studscore) as sumscore,

max(studscore) as maxscore,

min(studscore) as minscore,

count(*) countcourse

from studinfo si,studscoreinfo ss

where si.studno=ss.studno

group by si.studno

---5

select sas.studno,sas.studname,classname,avgscore,countcourse from V_studavgscore sas, classinfo ci,studinfo si

where sas.studno=si.studno and si.classid=ci.classid and(avgscore >=80 and avgscore<=85 or

avgscore >=60 and avgscore<=70)

---6错

select sas.studno,sas.studname,studsex,studbirthday,classname,avgscore,coursecount from V_studavgscore sas,studinfo si

where sas.studno=si.studno and studsex='男'

group by avgscore>80 and countcourse>30

---7

create sequence seq_newstudno

increment by 1

start with 10001

maxvalue 99999

nocache

nocycle;

select seq_newstudno.nextval from dual;

select seq_newstudno.currval from dual;

---8

create table studinfosequence

as

select seq_newstudno.nextval as studno,si.studname,studsex,studbirthday,ci.classname

from studinfo si,classinfo ci

where si.classid=ci.classid and classname='农经01'

---9

create view V_studavgscorecoursecountup20

as

select si.studno,studname,

sum(studscore) as sumscore,

max(studscore) as maxscore,

min(studscore) as minscore,

count(*) countcourse,

case when

count(*)>20 then (sum(studscore)-max(studscore)-min(studscore))/(count(*)-2)

else

sum(studscore)/count(*)

end as avgscore,

from studinfo si,studscoreinfo ss

where si.studno=ss.studno

group by si.studno,studname

---10

select si.studno,studname,studsex,studbirthday,avg(studscore) avgscore,

case when studscore>=90 then '优秀'

when studscore>=80 then '良好'

when studscore>=70 then '中等'

when studscore>=60 then '及格'

else '不及格' end as scorelevel

from studinfo si,studscoreinfo ss

where si.studno=ss.studno

group by si.studNo,studname,studSex,studscore,studbirthday;

---11 不对

select studscore,Case When avg(StudScore)>=90 then'优秀'

When avg(StudScore)>=80 then'良好'

When avg(StudScore)>=70 then'中等'

When avg(StudScore)>=60 then'及格'

else '不及格'

End AS 等级,

COUNT(*) 人数

from StudScoreInfo ss,courseinfo ci

where ss.courseid=ci.courseid and coursename='可视化程序设计'

group by Studscore;

---12

1.like

select * from studscoreinfo

where studno in(

select studno from(select * from studinfo

where studname like'__丽'))

2.substr

select * from studscoreinfo

where studno in(

select studno from(select * from studinfo

where substr(studname,3,1)='丽'))

---13

select studname,'牛'|| substr(studname,2)

from studinfo

where studname like '刘%';

---14

select studno,studsex,studbirthday from studinfo

group by studno,studsex,studbirthday

having count(*)>1;

---15

select avg(studscore) avgsocre from studscoreinfo

where studno in(

select studno from(select * from studinfo

where studbirthday=null

group by studno))

---16

select s.studno,studname,avg(studscore) avgscore

from studinfo s,studscoreinfo ssi

where s.studno=ssi.studno and studname like'王%'

group by s.studno,studname

having avg(studscore)>(

select avg(studscore)

from studscoreinfo ssi,studinfo s

where s.studno=ssi.studno and studname like '李%')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值