4.查询选修了“数据库”课程的学生的学号、姓名和成绩,查询结果按成绩降序排序;
select Student.Sno,Sname,SC.Gradefrom Student,Course,SCwhere SC.Sno=Student.Snoand SC.Cno=Course.Cnoand Course.Cname='数据库'order by SC.Grade DESC
5.查询每个学生的学号、姓名、选修课的课程名及成绩;
select Student.Sno,Sname,SC.Grade,Course.Cnamefrom Student,Course,SCwhere SC.Sno=Student.Snoand SC.Cno=Course.Cno
6.将所有学生所学课程成绩低于75分的课程名列出来。
select Course.Cnamefrom Student,Course,SCwhere SC.Sno=Student.Snoand SC.Cno=Course.Cnoand SC.Grade<75
一、嵌套查询
1 带谓词IN的嵌套查询
【SY4-01】查询与“李勇”在同一个系学习的学生信息。
【方法一】内连接里挑出的,外连接的表里得有
select Student.*from Studentwhere Dno in(select Department.Dnofrom Student,Departmentwhere Student.Dno=Department.DnoandStudent.Sname='李勇'
【SY4-02】查询选修了编号为“2”的课程的学生学号、姓名和系号。
select Student.Sno,Sname,Dnofrom Studentwhere Sno in(select SC.Snofrom SC,Coursewhere SC.Cno=Course.Cnoand Course.Cno=2)
嵌套循环里可不可以只用sc里面的cno挑出来 自身链接?
【SY4-03】查询选修了课程名为“数据库”的学生学号(Sno)和姓名(Sname)。
(用两种方法)
方法一:
select Student.Sno,Snamefrom Studentwhere Sno in(select SC.Snofrom SC,Coursewhere SC.Cno=Course.Cnoand Course.Cname='数据库')
方法二:
selectStudent.Sno,SnamefromStudent,SC,CoursewhereSC.Cno=Course.CnoANDSC.Sno=Student.SnoandCourse.Cname='数据库'
【SY4-04】查询没有选修“数学”课程的学生的学号和姓名。
select Student.Sno,Snamefrom Studentwhere Sno in(select SC.Snofrom SC,Coursewhere SC.Cno=Course.Cnoand Course.Cname!='数学')
2 带有比较运算符的嵌套查询
【SY4-05】将SY4-01改为带有比较运算符的嵌套查询。
select Student.*from Studentwhere Dno =(select Department.Dnofrom Student,Departmentwhere Student.Dno=Department.DnoandStudent.Sname='李勇')