一.SQL语言查询选修了全部课程的学生的学号和姓名. 两种解决途径: 第一种: 我们可以表示为在SC表中某个学生选修的课程数等于C表中课程总数.相应的SQL语言如下: select S#,SNAME from S where S# in (select S# from SC group by S# --根据Sno分组,统计每个学生选修了几门课程.如果等于C表课程的总数,就是我们要找的S# having count(*) = (select count(*) from C))--统计C表中共有几门
Course表如下: 查询出每门课都大于80 分的学生姓名有两种方法. 1.select distinct name from Course where name not in (select distinct name from Course where score<=80) 2.select name from Course group by name having min(score)>80
方法1: 查出科目成绩有小于80分的学生姓名,再约束并去重学生不等于查出来的姓名 select distinct A.name from t_score A where A.name not in(select distinct B.name from t_score B where B.fenshu <=80) 方法2: 按学生姓名分组,且最小的分数要大于80分 select A.name from t_score A group by A.name having min(A.fenshu)>
--设有三个关系 --S(S#,SNAME,AGE,SEX) --SC(S#,C#,GRADE) --C(C#,CNAME,TEACHER) --(1)检索LIU老师所授课程的课程号.课程名 select c#,cname from c where teacher='LIU' --(2)检索年龄大于23岁的男同学的学号和姓名 select s#,sname from s where age>23 and sex='男' --(3)检索学号为S3学生所学课程的课程名与任课教师名 select cn