当前位置: 代码网 > it编程>数据库>Mysql > MySQL 查询语句执行顺序的实现

MySQL 查询语句执行顺序的实现

2026年01月21日 Mysql 我要评论
(1) from 子句 -首先执行from employees emysql 会先读取 from 子句中的表信息(2) on 条件 -连接条件过滤join departments d on e.dep

(1) from 子句 -首先执行

from employees e
  • mysql 会先读取 from 子句中的表信息

(2) on 条件 -连接条件过滤

join departments d on e.dept_id = d.id
  • 对连接表的行进行匹配
  • 只有满足 on 条件的行才会被保留

(3) join 操作 -执行表连接

  • mysql 支持多种连接方式:inner join、left/right join、cross join

(4) where 条件 -行级过滤

where e.salary > 5000 and d.location = 'ny'
  • 此时不能使用 select 中的别名
  • 不能使用聚合函数(如 count, sum 等)

(5) group by -分组操作

group by d.name, e.position
  • 可以 group by 不在 select 中的列
  • 分组后每组生成一行结果

(6) with cube/rollup -生成超组

group by d.name with rollup
  • 生成小计和总计行

(7) having -分组后过滤

having avg(e.salary) > 6000
  • 可以使用聚合函数
  • 可以使用 select 中的别名

(8) select -选择输出列

select d.name, avg(e.salary) as avg_sal
  • 计算表达式和函数调用
  • 定义列别名

(9) distinct -去重操作

select distinct department
  • mysql 可能在 group by 时就已经去重

(10) order by -结果排序

order by avg_sal desc
  • 可以使用 select 中定义的别名
  • 对最终结果集排序,性能消耗较大

(11) limit -结果限制

limit 10 offset 5
  • mysql 特有语法,其他数据库可能用不同方式
  • 限制返回的行数

到此这篇关于mysql 查询语句执行顺序的实现的文章就介绍到这了,更多相关mysql 查询语句执行顺序内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com