mysql sql语句执行顺序

引言:作为一个程序猿。要想优化sql,首先要明白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_list>
(6)     HAVING <having_condition>
(9)     ORDER BY <order_by_condition>
(10)    LIMIT <limit_number>

一、执行FROM语句,mysql是从左往右执行,oracle是从右往左执行,SQL语句的执行过程中,都会产生一个虚拟表,用来保存SQL语句的执行结果(这是重点),执行from语句之后会产生一个虚拟表暂时叫VT1(vitual table 1),VT1是根据笛卡尔积生成

二、执行on进行过滤

根据on后面的条件过滤掉不符合条件的数据,参数VT2

三、执行链接的类型

inner join内连接、left join左链接、right右链接、outer join 外链接、full outer join 全连接

执行完产生VT3

四、执行where后面的条件

这时候使用WHERE条件的时候要注意:不能使用组函数、并且字段的别名不能放到条件中使用

例如SELECT city as c FROM t WHERE c='shanghai'

五、执行group by 进行分组

六、执行having过滤

HAVING子句主要和GROUP BY子句配合使用,having后面可以跟组函数的条件

七、执行select

八、执行distinct,去掉重复的数据

九、执行order by 语句排序

十、执行分页语句

谢谢支持,多少都行

mysql sql语句执行顺序相关推荐

  1. mysql oracle 查询语句执行顺序_MySQL sql语句执行顺序

    (8)     DISTINCT (1)     FROM (3)      JOIN (2)     ON (4)     WHERE (5)     GROUP BY (6)     HAVING ...

  2. mysql 执行顺序 SQL语句执行顺序分析

    最近在做一个数据库的大作业,算是复习了下MySql里面比较复杂的一些语句的用法,如Left Join之类的.在这里就不对具体语法进行记录了,希望能在以后经常用到,而不是隔好长时间用一次.在这里就记录下 ...

  3. MySql的sql语句执行顺序

    MySql的sql语句执行顺序 FROM table1 left join table2 on 将table1和table2中的数据产生笛卡尔积,生成Temp1 JOIN table2 所以先是确定表 ...

  4. 25、Sql语句执行顺序

    sql语句定义和执行顺序 摘自<MySQL技术内幕:SQL编程> sql语句定义的顺序 (1) SELECT (2)DISTINCT<select_list> (3) FROM ...

  5. 【转】SQL 语句执行顺序

    From:http://www.jellythink.com/archives/924 Oracle-SQL语句执行原理和完整过程详解:https://wenku.baidu.com/view/398 ...

  6. SQL 语句执行顺序

    From:http://www.jellythink.com/archives/924 Oracle-SQL语句执行原理和完整过程详解:https://wenku.baidu.com/view/398 ...

  7. php语句执行顺序,sql语句执行顺序是什么

    sql语句执行顺序:1.最先执行from tab:2.where语句是对条件加以限定:3.分组语句[group by-- having]:4.聚合函数:5.select语句:6.order by排序语 ...

  8. 整理:sql server 中sql语句执行顺序

    原文地址为: 整理:sql server 中sql语句执行顺序 SQL Server 查询处理中的各个阶段(SQL执行顺序) SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中 ...

  9. Mysql SQL语句执行更新或者插入添加条件判断

    Mysql SQL语句执行更新或者插入添加条件判断 – 更新操作 – INSERT INTO materials (ID,Name,Remaining,Total) VALUES (1,'SolidW ...

最新文章

  1. 利用Spring的aop原理实现系统级日志管理 附带源码
  2. 统计学习方法|朴素贝叶斯原理剖析及实现
  3. 沟通管理计划3个过程及重点
  4. boost::mpl::times相关的测试程序
  5. webservice的css哪里添加,jQuery_XML+XSLT+CSS+JQuery+WebService组建Asp.Net网(2), 3.       更 - phpStudy...
  6. origin图上显示数据标签_Origin(Pro):寒假都结束了,这个图还是不会画?【数据绘图】...
  7. Mybatis insert返回主键ID
  8. mysql建立从库同时备份_mysql主从库配置读写分离以及备份
  9. 尚硅谷全套课件整理:Java、前端、大数据、安卓、面试题
  10. STM8学习笔记---寄存器操作之位或和位与运算
  11. jenkins+docker 持续构建非docker in docker
  12. 【百度头条】精准微营销—本地离线92GBQQ群数据库,包含全部版本
  13. 网络口碑营销推广怎么能提高消费者的信任
  14. 计算机二级考试加油作文,为中考而加油作文(精选10篇)
  15. centos7环境下编译bitcoin
  16. 谷歌浏览器(chrome)允许跨域设置的方法
  17. java web开发学习总结
  18. lambda表达式的分析及使用
  19. OSI 7层的简单讲解
  20. asp.net_ImageMap热区

热门文章

  1. 【Java设计模式】简单工厂
  2. Python为视频文件添加鼓掌声、欢呼声和背景音乐
  3. 腾讯云Web直播组件助力“直播+”场景
  4. autojs截图并发送邮件
  5. [附源码]JAVA+ssm计算机毕业设计服装创意定制管理系统(程序+Lw)
  6. M1 Macbook上手测评:这5件事儿你需要知道
  7. 新iPhone终结单手握持时代:大屏将占据更多注意力
  8. 服务器下载文件Http头的设置
  9. 01-Echarts折线图基本实现、最大值、最小值、堆叠折线图等等
  10. 查看linux的dhcp配置文件,DHCP客户端Linux配置及测试