搞不清楚where是怎么用的?看:在基本表SC中检索平均成绩超过80分的学生学号和平均成绩:SELECT S#,AVG(GRADE)
FROM SC
GROUP BY S#
HAVING AVG(GRADE)>80同样都是检索,那为什么这个是这样的啊?看下面:检索学习全部课程的学生姓名:SELECT SNAME
FROM S
WHERE NOT EXISTS
    (SELECT * FROM C
       WHERE NOT EXISTS
       (SELECT *
         FROM *
         WHERE SC.S# = S.S#
          AND SC.C# = C.C# ))
干脆搞不清楚WHERE是干什么的,高手解答,顺便把这个嵌套说一下,麻烦你注释的清楚一点。要不然我还是看不明白!!
S#也是一个属性,为什么其他没有这个#?

解决方案 »

  1.   

    s# 是表的sc的主关键字是s的外部关键字
    一个表中只有一个主键,多个外部关键字
    既是候选索引
      

  2.   

    区别在于having 用于检索如group by产生结果值的条件
      

  3.   

    哦!那主关键字后面都跟了一个#了!!!
    楼上说HAVING用于检索如group by产生结果值的条件是什么意思?
    就是从上面的S#中检索满足HAVING 条件的吗?
      

  4.   

    where 是条件
    having是把 AVG(GRADE)<80的过滤掉