MySQL| MySQL语句的执行顺序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011479200/article/details/78658628

SQL语句的执行顺序:

(特别巧的是:关键字的书写顺序就是SQL子句的执行顺序)

子 句 说 明 是否必须使用
SELECT 要返回的列或表达式
FROM 从中检索数据的表 仅在从表选择数据时使用
WHERE 行级过滤
GROUP BY 分组说明 仅在按组计算聚集时使用
HAVING 组级过滤
ORDER BY 输出排序顺序
LIMIT 要检索的行数

EG:

SELECT vend_id,COUNT(*) AS num_prods
FROM products 
WHERE prod_price >2
GROUP BY vend_id
HAVING COUNT(*) >=2
ORDER BY num_prods DESC
LIMIT 0,3;

说明:
having子句后的COUNT(*)可以用别名num_prods代替,这条SQL语句的执行顺序是,首先根据where条件将所有的结果过滤出prod_price >2的记录,将过滤出来的记录按照vend_id将结果进行分组,将分组后的聚集结果按照条件COUNT(*) >=2每组数量>=2的记录过滤出来,然后按照列num_prods的降序排列,将排列后的结果从第一条开始取,取出不超过3条的记录.

返回结果:

+---------+-----------+
| vend_id | num_prods |
+---------+-----------+
|    1003 |         7 |
|    1001 |         3 |
|    1002 |         2 |
+---------+-----------+
展开阅读全文

没有更多推荐了,返回首页