这段语句是查询学过“叶平”老师课的同学的学号,这里其实查询的 表,但可
看到查的表是 ,, 表,根据后面的条件语句,用来关联查
询的。三个条件要同时满足,从而查询出“叶平”老师课的同学的学号
&#&,&#&由于 与 并无
直接联系,这里将 与 表联系起来, &#叶平:教
师名为叶平,从而对应到 表。
6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and
SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and
SC_2.C#='002');
解 析 : && ! "
&#&&#这一句查询到的是学过“A课程
的同学的学号、姓名;
+ B! C "C&#&
C&#
使用 + 关键字,用来判断是否存在的,当 +(查询)中的查询结果存
在时则返回真,否则返回假。这里指查询学过 课程的同学,使用 则
将得到的结果与上一句匹配得上就都为真,返回结果。若不匹配,则不返回结
果。
7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
select S#,Sname
from Student
where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and
Teacher.T#=Course.T# and Teacher.Tname=' 叶 平 ' group by S# having
count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T#
and Tname='叶平'));
解析:这一道题与第 题接近,只是答案后面多了:(%)*+
&# ! < "
&#&#叶平。
1(%)&&&*+&&的句式我们已经知道是因为 2,343关键字无法与合计
函数一起使用。合计函数 比如 56常常需要添加 147589:语句,根据
一个或多个列对结果集进行分组。
接 下 来 就 是 理 解 &# !
<"&#&#叶平的
含义了,&是基于前面条件叶平老师在 表中课程号的数量,
! < "