mysql 第3.22章 查询-查询语句的执行顺序 mysql 第3.22章 查询-查询语句的执行顺序

14小时前

在 SQL 中,一条查询语句的执行顺序通常是从内到外的,这意味着它的处理步骤并不完全按照书写的顺序。以下是一个典型 SQL 查询语句的执行顺序:

一、执行顺序

1.1、FROM

确定要查询的表,并从中提取数据。此阶段可能会涉及到联接操作。

1.2、JOIN

如果查询涉及多个表的联接,则在这一阶段执行。所有联接条件将在此处评估。

1.3、WHERE

过滤结果集,仅保留满足条件的记录。此步骤在数据提取后立即进行。

1.4、GROUP BY

将结果集按指定字段进行分组。这通常与聚合函数(如 COUNT、SUM 等)一起使用。

1.5、HAVING

在分组后进行的过滤操作,用于过滤聚合结果集中的记录。

1.6、SELECT

确定要返回的列,包括计算字段、聚合函数等。在这一阶段执行选择和计算操作。

1.7、DISTINCT

如果指定了 DISTINCT,则在这一阶段去除重复的记录。

1.8、ORDER BY

对结果集按指定列进行排序。这是在所有过滤和分组操作之后进行的。

1.9、LIMIT/OFFSET

如果使用了 LIMIT 或 OFFSET,则在此阶段限制返回的记录数量或指定结果的起始位置。

二、示例查询

2.1、sql

SELECT DISTINCT name, COUNT(*)
FROM students
WHERE age > 18
GROUP BY name
HAVING COUNT(*) > 1
ORDER BY name
LIMIT 10;

2.2、执行顺序

  • FROM students

  • WHERE age > 18

  • GROUP BY name

  • *HAVING COUNT() > 1**

  • *SELECT DISTINCT name, COUNT()**

  • ORDER BY name

  • LIMIT 10

三、总结

SQL 查询的执行顺序遵循特定的逻辑步骤,尽管我们书写时可能不按照这个顺序。

理解这个执行顺序有助于优化查询性能和理解查询结果。

阅读 14

mysql文章
带到手机上看