SQL where和having用法及区别

where

select * from table_name where 条件A and 条件B;
select * from table_name where 条件A and 条件B or 条件C;
select * from table_name where (字段名A,字段名B)=(值C,值D);

注意:第一步会先运行and,第二步会运行or;如果要先运行or,则需要加小括号。

Where运算符

运算符描述
=等于
<>不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式
IN指定针对某个列的多个可能值

having

#语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;

#例子
select class 
from courses
group by class  #有个group by 
having count(*)>=5  #后面可以接聚合函数

where 和 having的区别

WhereHaving
搜索条件在进行分组(group by)前应用搜索条件在进行分组(group by)后应用
后面不能接聚合函数,可以接单行函数后面接聚合函数
  • 单行函数:就是使用函数查询返回一条结果如(等于,时间转换,转换函数等)
  • 聚合函数:就是使用函数查询返回多调数据的如(大于,小于,不等于)

例子说明:

SELECT Websites.name, SUM(access_log.count) AS nums 
FROM Websites INNER JOIN access_log ON Websites.id=access_log.site_id
WHERE Websites.alexa < 200 
GROUP BY Websites.name
HAVING SUM(access_log.count) > 200;

1)WHERE 用来筛选 FROM 操作所产生的行。
2)GROUP BY 用来分组 WHERE 子句的输出。
3)HAVING 用来从分组的结果中筛选行。

参考链接:https://www.runoob.com/sql/sql-having.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值