如果group by分组后,还要要求按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,可以使用having短语指定筛选条件; 如:select Sno from SC group by Sno having count(*) > 3; 这里先用group by字句按Sno进行分组,然后再用聚集函数count 对每一组计数,having短语给出了选择组的条件,只有满足条件的组(即元组个数>3)才会被选出来 注意:where字句作用于基本表或视图,从中选择满足条件的元组。having短语作用于组,从中选择满足条件的组
exists代表存在量词。所以带有exists谓词的子查询不返回任何数据,只产生逻辑真‘TRUE’,或逻辑假‘FALSE’。 例如:select Sname from Student where exists (select * from SC where Sno=Student.Sno and Cno='1'); 由exists引出的子查询,其目标列表达式通常用*,因为带exists的子查询只返回真值或假值,给出别名无实际意义