mysql select语句执行顺序

 
 

SELECT语句定义       一个完成的SELECT语句包含可选的几个子句。

SELECT语句的定义如下:

<SELECT clause> [<FROM clause>] [<WHERE clause>] [<GROUP BY clause>] [<HAVING clause>] [<ORDER BY clause>] [<LIMIT clause>]

SELECT子句是必选的,其它子句如WHERE子句、GROUP BY子句等是可选的。

一个SELECT语句中,子句的顺序是固定的。例如GROUP BY子句不会位于WHERE子句的前面。

开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果       每个子句执行后都会产生一个中间结果,供接下来的子句使用,如果不存在某个子句,就跳过

时间: 2024-10-05 12:18:32

mysql select语句执行顺序的相关文章

(转载)MySQL select 语句执行顺序

Mysql-----from子句-> join子句-> on子句-> where子句 -> group子句-> having子句-> select子句 ->order by子句 -> limit子句 (7)  SELECT (8)  DISTINCT <select_list>(1)  FROM <left_table>(3)  <join_type> JOIN <right_table>(2)  ON <

MySQL sql语句执行顺序

sql语句select语句查询顺序 (7)     SELECT (8)     DISTINCT <select_list> (1)     FROM <left_table> (3)     <join_type> JOIN <right_table> (2)     ON <join_condition> (4)     WHERE <where_condition> (5)     GROUP BY <group_by_

MySQL 查询语句执行顺序

Mysql查询语句时候一共分为11步,其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回. 语句执行顺序 : 顺序 名称 内容 1 SELECT 命令发起 2 * 或 AVG(字段)等 查询内容 3 FROM 查询位置 4 WHERE 条件查询 5 GROUP BY 分组 6 HAVING 筛选 7 ORDER BY (ASC/DESC) 排序 8 LIMIT 限制结果数 1.单表查询 查询指定的列

MySQL(五)SELECT语句执行顺序

上一篇讲述了Oracle的SELECT语法的执行顺序,这篇讲述MySQL的SELECT语法的执行顺序.MySQL的SELECT语法的执行顺序和Oracle的基本相同,只是增加了MySQL独有的LIMIT语法. 目录 一.SELECT语句的处理过程 1. FROM阶段 2. WHERE阶段 3. GROUP BY阶段 4. HAVING阶段 5. SELECT阶段 6. ORDER BY阶段 7. LIMIT阶段 一.SELECT语句的处理过程 查询操作是关系数据库中使用最为频繁的操作,也是构成其

MySQL的语句执行顺序

MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作.其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回.如果没有在语句中指定某一个子句,那么将会跳过相应的步骤. 下面我们来具体分析一下查询处理的每一个阶段 FORM: 对FROM的左边的表和右边的表计算笛卡尔积.产生虚表VT1 ON: 对虚表VT1进行ON筛选,只有那些符合<join-condit

完整Select语句执行顺序

完整的select语句及执行顺序(必须记住) 5...select 5.2->distinct 7...top n [percent] 5.1->列名 聚合函数(1.2->列名或表达式) 1...1.1->from 表名 2...where 条件 3...group by ... 4...having ... 6...order by ... 说明: 第一步先执行:from 表名 第二步执行:聚合函数中的列名或表达式 第三步执行: where 条件 第四步执行:分组 group b

MySQL中语句执行顺序

当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是: 1.执行where xx对全表数据做筛选,返回第1个结果集. 2.针对第1个结果集使用group by分组,返回第2个结果集. 3.针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集. 4.针对第3个结集执行having xx进行筛选,返回第4个结果集. 5.针对第4个结果集排序. select count(user_id) from (sel

Mysql—select语句执行过程

select执行过程 (8)select (9) distinct <select list> (1)from  <left table> (3)        <join type> join <right table (2)   on<join condiction> (4)where<> (5)group by <> (6)with {CUBE|ROLLUP} (7)having <having list> (

【转】MySQL的语句执行顺序

1.FROM  对FROM的左边的表和右边的表计算笛卡尔积.产生虚表VT1 2.ON  对虚表VT1进行ON筛选,只有那些符合<join-condition>的行才会被记录在虚表VT2中. 3.JOIN  如果指定了OUTER JOIN(比如left join. right join),那么保留表中未匹配的行就会作为外部行添加到虚拟表VT2中,产生虚拟表VT3, rug from子句中包含两个以上的表的话,那么就会对上一个join连接产生的结果VT3和下一个表重复执行步骤1~3这三个步骤,一直