本帖最后由 张洪慊 于 2013-3-9 09:44 编辑
1.where 查询满足指定条件的元组(行)
例如:
---查询学生表中年龄<20的学生的姓名和年龄
select Sname,Sage from Student where Sage<20
但是不能把where换成having
2.了解下group by
group by 将查询结果 按某一列或 多列的值分组,值相等的为一组
例如:
我想知道在一个班中男生有多少人.
select count(*),Ssex from Student
group by Ssex ---分成'男'的一组,'女'的一组
having Ssex='男' --对分完的组进行筛选-->我只要男的一组
总结:where子句与having 短语的区别在于作用对象不同.where子句作用对于基本表或视图,
从中选择满足条件的元组(行).having短语作用于组,从中选择满足条件的组.
having与group by连用,如果用group by,一般有聚合函数(count,sum,avg...). |