Mysql 学习之 SQL的执行顺序

mysql的json查询:

                     

                                               

1、一条普通的SQL

SELECT      <select_list>
FROM        <left_table> <join_type>
JOIN         <right_table>  ON  <join_condition>
WHERE         <where_condition>
GROUP BY    <group_by_list>
HAVING      <having_condition>
ORDER BY    <order_by_condition>
LIMIT         <limit_number>

2、Mysql 解析读取后的SQL

FROM              <left_table>
ON                <join_condition>  <join_type> JOIN  <right_table>
WHERE              <where_condition>
GROUP BY         <group_by_list>
HAVING           <having_condition>
SELECT DISTINCT  <select_list>
ORDER BY         <order_by_condition>
LIMIT              <limit_number>

mysql解析SQL的时候先从FROM 开始,应为他需要先知道数据来源那些表。

笛卡尔积:A表10条 B表5条 ,笛卡尔积=10*5。

时间: 2024-11-10 18:03:40

Mysql 学习之 SQL的执行顺序的相关文章

Oracle学习之SQL语句执行顺序

1.执行顺序: 客户端输入sql语句 sql语句通过网络到达数据库实例 server porcess接收SQL语句后 a.将sql语句解析成执行计划,然后才能执行 b.解析:消耗很多资源:CPU.IO,如在共享池中有缓存则不需要再次解析. (共享池:缓存SQL语句以及SQL语句对应的执行计划) (buffer case:缓存dbf的数据 取数据过程:server porcess先检查buffer case中是否有数据,如果有数据则直接将 buffer catch中的数据返给用户(逻辑读):如果没

MySQL学习笔记—SQL服务器模式汇总

MySQL学习笔记-SQL服务器模式汇总 MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式.这样每个应用程序可以根据自己的需求来定制服务器的操作模式. 模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查.这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL. 你可以用–sql-mode="modes"选项启动mysqld来设置默认SQL模式.如果你想要重设,该值还可以为空(–sql-mode ="&q

SQL的别名和SQL的执行顺序和SQL优化

SQL的别名 1.不可以在where子句中使用列名的别名,即select name t from emp where t>2999;是不允许的 2.使用别名的好处: 提高SQL的易读性 提高SQL的解析执行效率 语法检查 语义检查 共享池检查 生成执行树 执行 3.SQL的硬解析和软解析? SQL的执行顺序 1.from语句--where语句--group by语句--having语句--select语句--order by语句 rownum的使用 select * from emp rownu

Junit4学习笔记--方法的执行顺序

package com.lt.Demo.TestDemo; import java.util.Arrays; import java.util.Collection; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; im

转摘: CSDN linxianliang5201314 的 blog ------sql解释执行顺序

我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动 大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家 分享一下,希望对大家有帮助. 要知道SQL语句,我想我们有必要知道SQL Server查询分析器怎么执行我们的SQL语句的,我们很多人会看执行计划,或者用Profiler来监视和调优查询语句或者存储过程慢的原因

sql解释执行顺序

转自: http://blog.csdn.net/linxianliang5201314/article/details/6871199 我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助. 要知道SQL语句,我想我们有必要知道SQL S

SQL子句执行顺序和Join的一点总结

原文链接:http://www.cnblogs.com/liuzhendong/archive/2011/10/27/2226805.html 1.笛卡尔积(Cartesian product) 顾名思义, 这个概念得名于笛卡儿. 在数学中,两个集合 X 和 Y 的笛卡儿积(Cartesian product),又称直积,表示为 X × Y,是其第一个对象是 X 的成员而第二个对象是 Y 的一个成员的所有可能的有序对. 假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a

SQL的执行顺序:

SQL的执行顺序: –第一步:执行FROM –第二步:WHERE条件过滤 –第三步:GROUP BY分组 –第四步:执行SELECT投影列 –第五步:HAVING条件过滤 –第六步:执行ORDER BY 排序

oracle学习笔记 SQL语句执行过程剖析讲课

oracle学习笔记 SQL语句执行过程剖析讲课 这节课通过讲述一条SQL语句进入数据库 和其在数据库中的整个的执行过程 把数据库里面的体系结构串一下. 让大家再进一步了解oracle数据库里面的各个进程.存储结构以及内存结构的关联关系. 首先来讲整个体系中有客户端.实例和数据库 数据库里有三类文件 控制文件ctl.数据文件dbf.日志文件log 实例中SGA有六大池子 第一大内存区shared pool即共享池 第二大内存区buffer cache 第三块是redo log 我们主要讲上面的三