嵌套子查询
--当一个查询是另一个查询的条件时,
--嵌套查询下层的程序模块,称之为子查询
--项目一.
--开发学生选课表中状态为报名,的课程名称有哪些?
--需要查询( 课程表 )( 选课表 )表?
--子查询的对象( 选课表处于报名状态的 )
--使用的查询方法( 子查询 )
--第一步.查询课程表和学生选课表
select from 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)表?
--要查询的列( 班级名称 )( 课程名称 )( 学生姓名 )( 期中成绩 )( 平均期中成绩 )( 平时成绩和平均平时成绩的差值 )
--子查询的对象( 平均平时成绩 )
--还使用的查询方法( 内链接查询、函数、嵌套子查询 )
--第一步.定义查询班级表、课程表、学生表、成绩表、选课表并进行关联.要查询的列是哪些
select class.classname,course.couname,student,stuname,achievement.qzcj
from class join student join stucou join achievement qzcj
--第二步.查询班级表的班级名称、课程表的课程名称、学生表的学生姓名、成绩表的期中成绩。
from class join Student
on class.ClassNo =Student.ClassNo
join StuCou
on Student .StuNo =stucou.StuNo join achievement
on stucou.CouNo =achievement .stano
join Course
on stucou.StuNo=course.CouNo
where class.ClassName ='2015计算机(3+2)'and
Course .CouName ='2008 sql server实用技术'
--第三步、查询成绩表的( 平均 )期中成绩
select AVG (qzcj)from achievement
--第四步、限定班级和课程条件使用子查询查询出结果
select class.ClassName ,Course .CouName ,Student,stuname.achievement.qzcj
(select AVG (pscj)from achievement )
achievement.pscj-(select AVG (pscj)from zchievement)
from zlass join student
on class.classno=student.classno
join stucou
on student.stuno=stucou.stuno
join achievement
join course
on stucou.stuno=course.couno
where class.clasname='15计算机(3+2)'and
course.couname='2008 sql server实用技术'
共同学习,写下你的评论
评论加载中...
作者其他优质文章