Oracle高级查询50句.docVIP

  • 20
  • 0
  • 约9.42万字
  • 约 26页
  • 2016-12-07 发布于河南
  • 举报
Oracle高级查询50句

Oracle高级查询50句 一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ------------------------------------表结构-------------------------------------- --学生表tblStudent(编号StuId、姓名StuName、年龄StuAge、性别StuSex) --课程表tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId) --成绩表tblScore(学生编号StuId、课程编号CourseId、成绩Score) --教师表tblTeacher(教师编号TeaId、姓名TeaName) --------------------------------------------------------------------------------- --问题: --1、查询“001”课程比“002”课程成绩高的所有学生的学号; Select StuId From tblStudent s1 Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId=001) (Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId=002) --2、查询平均成绩大于60分的同学的学号和平均成绩; Select StuId,Avg(Score) as AvgScore From tblScore Group By StuId Having Avg(Score)60 --3、查询所有同学的学号、姓名、选课数、总成绩; Select StuId,StuName, SelCourses=(Select Count(CourseId) From tblScore t1 Where t1.StuId=s1.StuId), SumScore=(Select Sum(Score) From tblScore t2 Where t2.StuId=s1.StuId) From tblStudent s1 --4、查询姓“李”的老师的个数; Select Count(*) From tblTeacher Where TeaName like 李% --5、查询没学过“叶平”老师课的同学的学号、姓名; Select StuId,StuName From tblStudent Where StuId Not In ( Select StuID From tblScore sc Inner Join tblCourse cu ON sc.CourseId=cu.CourseId Inner Join tblTeacher tc ON cu.TeaId=tc.TeaId Where tc.TeaName=叶平 ) --6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; Select StuId,StuName From tblStudent st Where (Select Count(*) From tblScore s1 Where s1.StuId=st.StuId And s1.CourseId=001)0 And (Select Count(*) From tblScore s2 Where s2.StuId=st.StuId And s2.CourseId=002)0 --7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; Select StuId,StuName From tblStudent st Where not exists ( Select CourseID From tblCourse cu Inner Join tblTeacher tc On cu.TeaID=tc.TeaID Where tc.TeaName=叶平 And CourseID not in (Select CourseID From tblScore Where StuID=st.StuID) ) --8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; Select StuId,StuName From tblStudent s1

文档评论(0)

1亿VIP精品文档

相关文档