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 子句中的运算符
下面的运算符可以在 WHERE 子句中使用:
运算符 | 描述 |
---|
= | 等于 |
<> | 不等于。注释: 在 SQL 的一些版本中,该操作符可被写成 != |
大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
IN | 指定针对某个列的多个可能值 |
select * from Students where name = 'ZhangSan'
select * from Students where id = 1
文本值使用引号括起来,数值字段,请不用使用引号
having
having 用于过滤,筛选分组后的各组数据
SQL中增加having的原因是,where关键字无法与聚合函数一起使用
select column_name, 聚合函数(column_name)
from table_name
where column_name 操作符 value
group by column_name
having 聚合函数(column_name) 操作符 value
SQL聚合函数有如下:
- count 统计行数量
- sum 获取单个列的合计值
- avg 计算个列的平均值
- max 计算列的最大值
- min 计算列的最小值
SQL操作符有如下:
SQL操作符包括算术运算符、关系运算符、逻辑运算符和位运算符
电商平台表 Platforms
必须要与group by配合使用,可以把分组计算的函数和分组字段作为筛选条件
where 可以先按照条件对数据进行筛选,然后进行数据连接,所以效率更高。having 可以在分组之后,通过使用分组中的计算函数,实现 WHERE 难以完成的数据筛选
where作用在GROUP BY子句和having子句前