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 关键字分页

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值