数据库中sql执行顺序是什么?
一、sql执行顺序:
1. from
确定哪张表
2. where
筛选条件
3. group by ... having
分组语句,通常配合使用。 having是对分组后的数据进行筛选,性能消耗高
4. 聚合函数
常用聚合函数:
max(),min(),sum(),avg(),count(),
all() 表示所有,所有都满足才返回true,any()表示任何一个,只要满足一个就返回true
5. select
选出要查询的字段
6. order by
排序语句
7. top
查询最前面的一部分数据
二、where后面条件的执行顺序:
mysql、sqlserver 从左往右执行
oracle 从右往左执行
筛选掉数据越多的条件,越放到前面执行,可以提高数据库查询效率
eg: select languages_id, type,products_id from table t where t.languages_id=1 and t.type=1 and t.products_id in (5,6)
在mysql中,如果 t.products_id in (5,6) 筛选的数据更多,其次 t.languages_id=1,则应该将t.products_id in (5,6) 放在最左边
** 大多数时候,mysql会自动选择最优的执行顺序,但是有时候mysql不能做出最优的执行顺序,就需要我们自己判断哪种过滤最优。
浮躁的人容易问:我到底该学什么;----别问,学就对了; 浮躁的人容易问:JS有钱途吗;----建议你去抢银行; 浮躁的人容易说:我要中文版!我英文不行!----不行?学呀! 浮躁的人分两种:只观望而不学的人;只学而不坚持的人; 浮躁的人永远不是一个高手。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了