SQL查询执行顺序为FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY→LIMIT;LEFT JOIN右表过滤须写在ON而非WHERE;避免SELECT*;LIKE查询慎用前导通配符;ORDER BY字段需建索引,深分页宜用游标。
SQL基础查询写法其实不难,关键在理解逻辑顺序和避开常见坑。SELECT、FROM、WHERE、ORDER BY 这几个子句的执行顺序不是从左到右,而是 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT。写错顺序或滥用字段,很容易查得慢、结果错、甚至报错。
在 WHERE 里过滤 LEFT JOIN 的右表字段很多人习惯把所有条件都塞进 WHERE,但对 LEFT JOIN 来说,这会把本该保留的 NULL 行给过滤掉,实际变成 INNER JOIN。
查全字段不仅传输数据多、内存占用高,还可能让数据库无法走覆盖索引(Covering Index),导致额外回表。
WHERE name LIKE '%abc' 无法使用索引;WHERE name LIKE 'abc%' 才可以。
比如查“最新10条订单”,写成 SELECT * FROM orders WHERE status='paid' ORDER BY created_at DESC LIMIT 10,如果 created_at 没索引,就得全表扫描再排序。
基本上就这些。基础查询写对不难,但细节决定效率和稳定性。多看执行计划(EXPLAIN),少凭感觉优化。