mysql sql语句执行顺序
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语句执行顺序相关推荐
- mysql oracle 查询语句执行顺序_MySQL sql语句执行顺序
(8) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) HAVING ...
- mysql 执行顺序 SQL语句执行顺序分析
最近在做一个数据库的大作业,算是复习了下MySql里面比较复杂的一些语句的用法,如Left Join之类的.在这里就不对具体语法进行记录了,希望能在以后经常用到,而不是隔好长时间用一次.在这里就记录下 ...
- MySql的sql语句执行顺序
MySql的sql语句执行顺序 FROM table1 left join table2 on 将table1和table2中的数据产生笛卡尔积,生成Temp1 JOIN table2 所以先是确定表 ...
- 25、Sql语句执行顺序
sql语句定义和执行顺序 摘自<MySQL技术内幕:SQL编程> sql语句定义的顺序 (1) SELECT (2)DISTINCT<select_list> (3) FROM ...
- 【转】SQL 语句执行顺序
From:http://www.jellythink.com/archives/924 Oracle-SQL语句执行原理和完整过程详解:https://wenku.baidu.com/view/398 ...
- SQL 语句执行顺序
From:http://www.jellythink.com/archives/924 Oracle-SQL语句执行原理和完整过程详解:https://wenku.baidu.com/view/398 ...
- php语句执行顺序,sql语句执行顺序是什么
sql语句执行顺序:1.最先执行from tab:2.where语句是对条件加以限定:3.分组语句[group by-- having]:4.聚合函数:5.select语句:6.order by排序语 ...
- 整理:sql server 中sql语句执行顺序
原文地址为: 整理:sql server 中sql语句执行顺序 SQL Server 查询处理中的各个阶段(SQL执行顺序) SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中 ...
- Mysql SQL语句执行更新或者插入添加条件判断
Mysql SQL语句执行更新或者插入添加条件判断 – 更新操作 – INSERT INTO materials (ID,Name,Remaining,Total) VALUES (1,'SolidW ...
最新文章
- 利用Spring的aop原理实现系统级日志管理 附带源码
- 统计学习方法|朴素贝叶斯原理剖析及实现
- 沟通管理计划3个过程及重点
- boost::mpl::times相关的测试程序
- webservice的css哪里添加,jQuery_XML+XSLT+CSS+JQuery+WebService组建Asp.Net网(2), 3. 更 - phpStudy...
- origin图上显示数据标签_Origin(Pro):寒假都结束了,这个图还是不会画?【数据绘图】...
- Mybatis insert返回主键ID
- mysql建立从库同时备份_mysql主从库配置读写分离以及备份
- 尚硅谷全套课件整理:Java、前端、大数据、安卓、面试题
- STM8学习笔记---寄存器操作之位或和位与运算
- jenkins+docker 持续构建非docker in docker
- 【百度头条】精准微营销—本地离线92GBQQ群数据库,包含全部版本
- 网络口碑营销推广怎么能提高消费者的信任
- 计算机二级考试加油作文,为中考而加油作文(精选10篇)
- centos7环境下编译bitcoin
- 谷歌浏览器(chrome)允许跨域设置的方法
- java web开发学习总结
- lambda表达式的分析及使用
- OSI 7层的简单讲解
- asp.net_ImageMap热区
热门文章
- 【Java设计模式】简单工厂
- Python为视频文件添加鼓掌声、欢呼声和背景音乐
- 腾讯云Web直播组件助力“直播+”场景
- autojs截图并发送邮件
- [附源码]JAVA+ssm计算机毕业设计服装创意定制管理系统(程序+Lw)
- M1 Macbook上手测评:这5件事儿你需要知道
- 新iPhone终结单手握持时代:大屏将占据更多注意力
- 服务器下载文件Http头的设置
- 01-Echarts折线图基本实现、最大值、最小值、堆叠折线图等等
- 查看linux的dhcp配置文件,DHCP客户端Linux配置及测试