SQL的执行流程

1. SQL的语句结构

1.1 SQL92 语法

SELECT DISTINCT ...,...,...(存在聚合函数)
FROM ...,...,...

WHERE 多表的连接条件 AND 不包含聚合函数的过滤条件
GROUP BY ... (WITH ROLLUP)
HAVING 包含聚合函数的过滤条件
ORDER BY ... (ASC/DESC)
LIMIT ...,...

1.2 SQL99 语法

SELECT DISTINCT ...,...,...(存在聚合函数)
FROM ...

(LEFT/RIGHT) JOIN ... ON 多表的连接条件
(LEFT/RIGHT) JOIN ... ON ...

WHERE 不包含聚合函数的过滤条件
GROUP BY ... (WITH ROLLUP)
HAVING 包含聚合函数的过滤条件
ORDER BY ... (ASC/DESC)
LIMIT ...,...

2. SQL的执行过程

FROM -> ON -> (LEFT/RIGHT) JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT

说明:

  1. 对于不包含聚合函数的过滤条件,推荐声明在 WHERE中,这样查询效率较高。
  2. SELECT中声明的 字段别名不能在 WHERE中使用,但可以在 HAVINGGROUP BY中使用。

3. SQL的分类

  • DDL(数据定义语言): CREATEALTERDROPRENAMETRUNCATE
  • DML(数据操作语言): INSERTDELETEUPDATESELECT
  • DCL(数据控制语言): COMMITROLLBACKSAVEPOINTGRANTREVOKE

DDL与DML的说明

  • DDL的操作一旦执行,就不可回滚。
  • DML的操作在默认情况下也是不可回滚的。但若在操作执行前执行了 SET autocommit = FALSE,则操作可以实现回滚。

Original: https://www.cnblogs.com/bpf-1024/p/15924639.html
Author: 步平凡
Title: SQL的执行流程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612351/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球