1.Where与having的区别?
- 执行的时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。执行顺序:where > 聚合函数 > having。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。
分组查询时,分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
2.SQL中是否支持多字段排序?
支持的。如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。默认 ASC(升序)。
select * from emp order by age asc,data desc
3.介绍分页查询?
- 分页查询是数据库方言,不同的数据库有不同的实现,MySQL中是LIMIT。
- 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10.
- 基本语法:
select 字段列表 from 表名 LIMIT 起始索引,查询记录数;
4. DQL-执行顺序
SELECT
字段列表 //第5步
FROM
表名列表 // 第1步
WHERE
条件列表 //第2步 可以选择:> >= < <= = <> like between---and in and or
GROUP BY
分组字段列表 //第3步
HAVING
分组后条件列表 //第4步
ORDER BY
排序字段列表 //第6步
LIMIT
分页参数 //第7步