sql语句的执行顺序问题

导语:大三期间选修的数据库课程带我入了sql语句的门,但是实际应用场景中,发现有时候得到的结果,或者查询所花费的时间都不能达到预期效果,于是稍微研究了一下sql语句的执行顺序问题,感觉对于sql语句的书写更加有帮助了,下面是我总结的一点东西,但是可能不全面。

SELECT ( DISTINCT 查询字段) FROM (lefttable JOIN righttable ON()) WHERE(查询条件) GROUP BY(分组字段) HAVING(分组筛选条件) ORDER BY (排序字段) limit(分页参数);

一条select查询语句,差不多就是以上语句的某一个子集,然后他的一个执行顺序如下:

  1. FROM 子句组装来自不同数据源的数据
  2. ON关键字
  3. JOIN关键字
  4. WHERE 查询条件
  5. GROUP BY子句将数据划分为多个分组
  6. 使用聚合函数进行计算
  7. HAVING 子句筛选之前的分组
  8. SELECT关键字
  9. DISTINCT 关键字去重
  10. ORDER BY关键字排序
  11. limit 关键字分页

以上每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入

 

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

达不溜Q

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值