本文主要介绍Sql的执行顺序。通过示例代码非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友下面和边肖一起学习。
任何学习过Sql或理解Sql的人都应该编写下面一行代码:
select * from t
上面的代码代表了查询T表中的所有信息,这是Sql查询中最基本最简单的一行代码。你可以理解为其他编程语言的Hello World。
Select *只是你进入Sql大门的第一步。在实际工作中,绝对不止这些。让我们看一个例子。
现在有了下面的表T,它存储了每个商品类别的交易明细。我们需要通过下表得到订单量大于10的对应品类,取出订单量前3的商品品类。会有一些测试过的订单(catid=c666的是测试),我们需要过滤掉。
catid
订单id
c1
一个
c1
2
c1
三
c2
四
c2
五
c3
六
…
…
c100
一万
为了满足上述要求,我们的Sql可以这样编写:
挑选
catid,
count(orderid)作为销售额
从
t
在哪里
catid c666
分组依据
catid
拥有
count(orderid) 10
以.排序
desc计数(订单编号)
限制3
上面的Sql代码涉及了七个关键词:select、from、where、group by、having、order by、limit,基本包括了Sql中所有的查询关键词。上面的顺序就是这七个关键词的语法顺序,也就是你写代码的时候,要按照这个顺序写。这七个关键词的执行顺序是什么?即先执行哪个,后执行哪个。
可以肯定的是,肯定不是自上而下进行的。如果是这样,就没必要写这篇文章了。
我一直坚持的一个态度是,电脑和人做事情没什么区别。基本逻辑和流程都是一样的。毕竟电脑也是人设计的。在这种情况下,让我们看看如果我们手动执行上述要求,我们会做什么。
首先,我是否需要知道我想从哪个表中得到我想要的东西,即从;现在我知道是从哪个表中得到的,但并不是这个表中的所有信息都是我需要的。我需要去掉一些不需要的(比如测试订单)或者过滤掉一些我需要的。这是哪里;现在我已经整理出了我需要的订单明细,但是我想要每个类别的订单数量。这个时候有没有必要做一个分组聚合,也就是group by;分组后,我们不要所有的结果。我们只想要大于10的类别,所以我们需要过滤掉大于10的类别,过滤掉不大于10的类别。这就是拥有;现在我们想要的大部分信息都出来了,我们可以用select查询出来;因为最终需要取前三类,所以需要将查询结果按降序排列,即order by;最后一步,只显示前三个,做一个限定,也就是limit。
以上就是 Sql 语句的一个基本执行顺序,总结一下就是:
from-where-group by-having-select-order by-limit
关于Sql的执行顺序,本文就讲到这里。有关Sql执行序列的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!