赞
踩
本关任务:使用联合查询实现对多数据表的查询操作。
为了完成本关任务,你需要掌握:
1.什么是多表联合查询;
2.如何使用多表联合查询。
########## 查询选修了编号为'c01'课程的学生学号、姓名和成绩 ##########
select s.sno,sname,score from s,sc where sc.cno='c01' and s.sno=sc.sno;
########## 查询与'刘伟'在同一个系学习的学生学号、姓名及所在院系 ##########
select sno,sname,dept from s where dept=(select dept from s where sname='刘伟') and sname !='刘伟';
########## 查询选修了'数据结构'课程且成绩大于等于90的学号、姓名和成绩 ##########
select s.sno,s.sname,sc.score from s,c,sc where c.cname='数据结构' and sc.score>=90 and s.sno=sc.sno and c.cno=sc.cno;
########## 查询选修编号为'c01'或'c02'课程的学生姓名 ##########
select s.sname from s,sc where s.sno=sc.sno and sc.cno='c01' or sc.sno='c02';
本关任务:使用内连接查询实现对多数据表的查询操作。
为了完成本关任务,你需要掌握:
1.什么是内连接查询;
2.如何使用内连接查询。
########## 查询与'张乐乐'出生年份相同的学生学号、姓名、所在院系和年龄(别名age,使用TimeStampDiff()函数计算到2023年4月1日的年龄) ##########
select sno,sname,dept,timestampdiff(year,dob,'2023-4-1') as age from s where extract(year from dob)=2000 and sname !='张乐乐';
########## 查询每个学生的学号、姓名、选修课程号、课程名及成绩 ##########
select s.sno,sname,c.cno,cname,sc.score from s,c,sc where s.sno=sc.sno and c.cno=sc.cno;
########## 查询选修课程数大于等于2门的学生学号、姓名及平均成绩(别名avg),查询结果按平均成绩降序输出 ##########
select s.sno,sname,avg(sc.score) as avg from s,sc group by sc.sno having count(sc.sno)>=2 and s.sno=sc.sno;
本关任务:使用左外连接查询实现对多数据表的查询操作。
为了完成本关任务,你需要掌握:
1.什么是左外连接查询;
2.如何使用左外连接查询。
########## 查询所有学生的选课情况(包括选课和未选课的学生),要求显示学号、姓名、课程号和成绩 ##########
select s.sno,sname,sc.cno,score from s left outer join (c left join sc on c.cno=sc.cno) on s.sno=sc.sno;
本关任务:使用右外连接查询实现对多数据表的查询操作。
为了完成本关任务,你需要掌握:
1.什么是右外连接查询;
2.如何使用右外连接查询。
########## 查询所有课程的被选情况(包括从未被选修的课程),要求显示选课的学生学号、课程编号、课程名和成绩 ##########
select s.sno,c.cno,cname,score from s right join (c left join sc on c.cno=sc.cno) on s.sno=sc.sno;
本关任务:使用交叉连接查询实现对多数据表的查询操作。
为了完成本关任务,你需要掌握:
1.什么是交叉连接查询;
2.如何使用交叉连接查询。
########## 查询所有学生的可能选课组合,结果集包括学号、姓名、课程号及课程名 ##########
select s.sno,sname,c.cno,cname from s cross join c;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。