sql语句的执行顺序

FROM 子句

  • 从指定的数据源(表或视图)获取数据。

  • 如果有JOIN操作,会在此步骤进行表的连接操作。

WHERE 子句

  • 对FROM子句返回的数据进行过滤,保留满足条件的行。

GROUP BY 子句

  • 将数据根据一个或多个字段进行分组。

HAVING 子句

  • 对分组后的数据进行过滤,保留满足条件的组。

SELECT 子句

  • 从过滤后的数据或分组数据中选择需要的列或表达式。

DISTINCT 子句(如果有的话):

  • 去除SELECT子句返回的结果中的重复行。

ORDER BY 子句

  • 对SELECT子句返回的结果进行排序。

LIMIT 子句(或其他限制返回行数的子句,如TOP、FETCH等)

  • 限制返回的行数。

例如:

SELECT DISTINCT column1, aggregate_function(column2)
FROM table1
JOIN table2 ON table1.id = table2.id
WHERE condition
GROUP BY column1
HAVING condition
ORDER BY column1
LIMIT 10;

这个查询的执行顺序如下:

  1. FROM table1 JOIN table2 ON table1.id = table2.id:先从table1table2中获取数据,并根据指定的条件进行连接。

  2. WHERE condition:对连接后的数据进行过滤,保留满足condition的行。

  3. GROUP BY column1:将过滤后的数据根据column1进行分组。

  4. HAVING condition:对分组后的数据进行过滤,保留满足condition的组。

  5. SELECT DISTINCT column1, aggregate_function(column2):选择所需的列和聚合函数,并去除重复的行。

  6. ORDER BY column1:对选择的结果进行排序。

  7. LIMIT 10:限制返回的行数为10行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值