sql基础执行顺序
2015-12-10 12:53
323 查看
基础的SQL执行顺序
SQL语句执行的时候是有一定顺序的。理解这个顺序对SQL的使用和学习有很大的帮助。1.from
先选择一个表,或者说源头,构成一个结果集。
2.where
然后用where对结果集进行筛选。筛选出需要的信息形成新的结果集。
3.group by
对新的结果集分组。
4.having
筛选出想要的分组。
5.select
选择列。
6.order by
当所有的条件都弄完了。最后排序。
带连接的SQL语句执行顺序(以Left Join为列)
我的理解是这样,SQL语句中无论是否连接的其他表。 无论如何都要先形成一个结果集。后面的顺序不变!只不过使用连接时,形成结果集合的方式略有不同。这个和 Left Join的实现原理有关。
select a.name,b.name
from T_left
a //1
Left Join T_Right b //3
ON a.id = b.id //2
使用Left Join 形成结果集的方式是这样的。
1. 首先对From子句中的前两个表,执行笛卡尔积运算。运算结果
形成一个结果集合。
2. ON按条件,对上边的结果集,进行筛选,形成新的结果集。
3. 以左连接为例,如果T_left中存在未匹配到的行。那么把T_left中的这几行以外部行的形式加到上边的结果集中形成新的结果集。
4. 如果存在多张表,重复1~3过程!
相关文章推荐
- mysql left( right ) join使用on 与where 筛选的差异
- SQL Server 创建链接服务器
- T-SQL语句创建数据库
- 链接数据库
- C# SQL数据格式对应关系
- 详细解析oracle中left join,right join,inner join用法
- 10009---mysqldump参数详细说明
- 通讯录数据库插入数据
- 通讯录数据库插入数据
- Oracle取某一栏位逗号分隔之后的数据
- Cetnos6.5编译安装mysql-5.7.9.tar.gz
- MySQL5.7.10 windows 安装实践
- 获取linq生成的sql语句
- 通讯录数据库插入数据
- 通过反射与注解拼装sql查询的小例子
- Java 使用Redis缓存工具的图文详细方法
- Laravel 使用Redis 笔记
- 卸载MySQL
- MySQL中Nested-Loop Join算法小结
- Mongo数据库教程——NoSQL简介