mysql中语句执行的过程(便于理解)

   大家在写MySQL的过程中,可能有时候会理解不了一些语句的执行过程,比如说是不清楚语句的执行先后顺序,我虽然写mysql不是很多,但是仔细想过这个问题,其中很重要的一点就是,为什么where就要紧紧跟在from的后面,想过这些问题,与大家分享一下

首先在写MySQL语句的一般顺序是

SELECT...... ,.....,......

FROM.....(LEFT/RIGHT)JOIN......ON (SQL99语法)(若有多张表则写出多表的连接条件)

[FROM ......,......,......(SQL92语法)]

JOIN......ON......

WHERE......AND...(过滤条件)

GROUP BY......(按照某种方式进行分组)

HAVING......(过滤条件,与WHERE类似,但一般用在用GROUP BY分完组的情况下)

ORDER BY......(DESC/ASC)(将数据升序或降序排列)

LIMIT......(限制条件)

而这个执行的顺序可以理解为:

FROM ....,.....,......------>   ON   ------>(LEFT/RIGHT    JOIN) ----->WHERE   ---->GROUP BY----->HAVING------>SELECT------>DISTINCT------>ORDER BY------>LIMIT.

执行原理:

   首先上来就是FROM,从指定的某张表开始,后面的on指明连接多表的条件(若存在多表),再关注是否是左外或右外连接,接下来该where了,进行过滤数据(在这里举个例子,比如说在一个部门中,你只需要某些数据或者是某几个数据,从这张表中查到后进行过滤然后再继续执行下一步操作),接下来是GROUP BY,将过滤好的数据按照某种标准进行分组,分成几个小组,紧接着根据这几个小组看要满足哪一种条件进行过滤,接下来该SELECT接下来是从满足这些条件的数据或者是小组中选取特定的字段(其实是更缩小了范围,将满足题意的字段显示出来),经过上述一系列操作以后其实要找的字段已将找好了,DISTINCT为之后数据去重,执行order by进行排序,最后limit看用不用分页显示,后三种主要起的是辅助作用。

如有不足的地方,欢迎大家留言指出,小编会及时回复大家进行订正,希望这篇文章对大家有所帮助。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l承z

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值