数据库SQL查询语句

设教学数据库中有三个关系:
  学生关系S(SNO,SNAME,AGE,SEX,DEPT)
  选课关系SC(SNO,CNO,GRADE)
  课程关系C(CNO,CNAME,CREDIT)
试用SQL描述下列查询:
1. 查询选修了课程号为C2课程,且这门课程的成绩在80到90分之间的学生学号,姓名与成绩;
2.查询概率统计成绩前10名的学生学号与姓名;
3. 查询至少选修了课程号为C2和C4课程的学生学号;
4. 查询选修了课程号为C1但不选修C2课程的学生学号;
5.查询既不修课程号为C1也不修课程号为C2课程的学生学号、姓名和年龄;
6.查询所选课程的成绩均在80以上的学生学号和姓名;
7.查询所修课程的平均分前三名,且所选课程均及格,所修课程20门以上的企管系男生的学生的学号和姓名,平均分;
8.查询选修所有了学号为330105204010学生所修课程的学生的学号、姓名、性别;
9. 查询获得总学分最高的前10名学生的学号,姓名,总学分。

(我不太清楚你说的课程号是指CNO还是CNAME,我这里假定你说的课程号为CNO,以下语句均未考虑字段数值类型)
1、SELECT A1.SNO,A1.SNAME,A2.GRADE FROM S A1,SC A2 WHERE A1.SNO = A2.SNO AND A2.CNO = C2 AND A2.GRADE BETWEEN 80 AND 90

2、不太懂

3、SELECT A1.SNO FROM SC A1,SC A2 WHERE A1.SNO = A2.SNO AND A1.CNO = C2 AND
A2.CNO = C4 GROUP BY A1.SNO

4、SELECT A1.SNO FROM SC A1 WHERE A1.CNO = C1 AND A1.SNO NOT IN (SELECT SNO FROM SC WHERE CNO = C2)

5、SELECT A1.SNO,A1.SNAME,A1.AGE FROM S A1,SC A2 WHERE A1.SNO = A2.SNO AND A2.CNO NOT IN(C1,C2)

6、SELECT SNO,SNAME FROM S WHERE SNO NOT IN(
SELECT SNO FROM SC WHERE GRADE <= 80 ) GROUP BY SNO

7、
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网