where和having的区别及用法

wherehaving两者本身应用于SQL中的select查询语句中,两者扮演的角色都为条件语句。

用法


where

select 想要获取的属性 from 表名 where 条件;
select * from child where sex = 'boy';  查找child表中性别为男的所有孩子的信息
select name,sex,age,school from child where adress = 'shanghai';
查找child表中生活在上海的孩子的姓名、性别、年龄及学校的信息
select name,sex,age,adress from XiAn where like = "%杉%";
查找XiAn表中名字含有“杉”这个字的所有人的姓名、年龄、性别及地址这些信息

having

select 想要获取的属性 from 表名 group by 分组条件 having 查询条件;
select * from emp group by deptno having sal>1500;
查找emp(员工表)中按deptno(部门)分组并sal(工资)高于1500的所有人员信息
select * from emp group by deptno having sum(sal)>15000;
查找emp(员工表)中按deptno(部门)分组并sal(总工资)高于15000的所有人员信息

where和having

查询工资大于1500,部分工资大于6000部门编号及工资和
select deptno,sun(sal) from emp where sal>1500 group by deptno having sum(sal)>6000;

区别:


1,两者在select语句中都可以作为条件
2,having是在分组之后对数据进行过滤,where是在分组之前对数据进行过滤;
3,having之后还可以跟聚合函数,而where是不可以的;
4,where用于精准查询,除了与like配合使用之外;
5,having的使用必须group by 结合使用,否则报错。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值