一.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表中共有几门
在进行数据库查询时,有时需要用到对既有的数据表进行多表查询得出的临时条件的数据表,就可以暂时创建成为虚表,并赋予简单明了的字段名以及临时表名. 例题a:查询出每门课程低于平均成绩的学生姓名.课程名称.分数 分析: 1. 要完成题目,首先需要一张所有学生的课程及分数表,所需字段:学生姓名.课程名称.分数: select a.Name as Name,b.C_name as C_name,b.Grade as Grade from students a,score b where a.Id=b.st
一.题目 1.找出所有成绩均低于80的学生姓名 select sname from student where sid in( ) select sname from student where sid in( select sid from mark where sid not in( )) 2.找出和张三同学所选课程完全相同的学生姓名 Step1:select sid from student where sname='张三' step2:select cid from mark where