SQL学习知识点总结

where 与having区别

where子句作用于表,having子句作用于组。
where条件查询的作用域是针对数据表进行筛选,而having条件查询则是对分组结果进行过滤。
where在分组和聚合计算之前筛选行,而having 在分组和聚合之后筛选分组的行,因此where子句不能包含聚合函数

Select 语句执行顺序

From→Where→Group by→having→select→order by→limit

子查询

一个select语句中包含另一个或多个完整的select语句
子查询出现的位置

  • 出现在select子句中:将子查询返回结果作为主查询的一个字段或者计算值(标量子查询、列子查询)
  • 出现在where/having子句中:将子查询返回的结果作为主查询的条件(标量子查询、行子查询、列子查询、表子查询)
  • 出现在from子句中:将子查询返回的结果作为主查询的一个表(标量子查询、行子查询、列子查询、表子查询)
    SQL学习知识点总结