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的区别
Where | Having |
---|---|
搜索条件在进行分组(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