继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

嵌套子查询

黄朕
关注TA
已关注
手记 4
粉丝 0
获赞 1

--当一个查询是另一个查询的条件时,
--嵌套查询下层的程序模块,称之为子查询

--项目一.
--开发学生选课表中状态为报名,的课程名称有哪些?
--需要查询(课程表)(选课表)表?
--子查询的对象(报名状态为报名)
--使用的查询方法(子查询)

--第一步.查询课程表和学生选课表
selectfrom Course
select
from StuCou
--第二步.使用纵向嵌套子查询查询结果
select'课程名称'=couname
from Course
where couno in(select couno from StuCou where State='报名')

--项目二.
--要求查询班级名称为2015(3+2)计算机班的,的课程名称为2008数据库应用的学生姓名、
--平时成绩,( 平均 )平时成绩,( 平均 )平时成绩和学生平时成绩的差值,以判断每班
--同学上半学期的成绩情况。
--需要查询(class)(couse)(student)(achievement)(stucou)表?
--要查询的列(班级名称)(课程名称)( 学生姓名 )( 期中成绩 )( 平均期中成绩 )( 平时成绩和平均平时成绩的差值 )
--子查询的对象(平均平时成绩 )
--还使用的查询方法( 内链接,函数和横向嵌套查询 )

--第一步.定义查询班级表、课程表、学生表、成绩表、选课表并进行关联.要查询的列是哪些

from class.classname,student.stuname,stucou.stuno,achievement.stuno,couse.couno

--第二步.查询班级表的班级名称、课程表的课程名称、学生表的学生姓名、成绩表的期中成绩。
select class.classname,course.couname,student.stuname,achievement.qzcj,
(select AVG (qzcj ) from achievement),achievement.qzcj -(select AVG (qzcj )from achievement )
from Class join Student
on class.ClassNo =Student.ClassNo
join StuCou
on Student .StuNo=StuCou.StuNo
join achievement
on StuCou.StuNo=achievement.StuNO
join Course
on StuCou.CouNo=Course.CouNo
where Class.ClassName ='2015(3+2)计算机' and Course.CouName ='SQL server实用技术'
--第三步、查询成绩表的( )期中成绩

--第四步、限定班级和课程条件使用子查询查询出结果
select class.classname,course.couname,student.stuname,achievement.qzcj,
(select AVG (qzcj ) from achievement),achievement.qzcj -(select AVG (qzcj )from achievement )
from Class join Student
on class.ClassNo =Student.ClassNo
join StuCou
on Student .StuNo=StuCou.StuNo
join achievement
on StuCou.StuNo=achievement.StuNO
join Course
on StuCou.CouNo=Course.CouNo
where Class.ClassName ='2015(3+2)计算机' and Course.CouName ='SQL server实用技术'图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP