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

  1. FROM

  2. ON

  3. JOIN

  4. WHERE

  5. GROUP BY

  6. WITH CUBE or WITH ROLLUP

  7. HAVING

  8. SELECT

  9. DISTINCT

  10. ORDER BY

  11. TOP

也就是说, 先进行on的过滤, 而后才进行join, 这样就避免了两个大表产生全部数据的笛卡尔积的庞大数据.

这些步骤执行时, 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。

inner join

找到符合 左=右 的项,不符合的不要

left join

左表有的都显示,右表没有的用NULL来填充

right join

右表有的都显示,左表没有的用NULL来填充

full join

全显示

create table t_join_buyers
(
buyer_name varchar(10),
buyer_id int
) create table t_join_sales
(
buyer_id int,
prod_id int,
qty int
) insert into t_join_buyers values ('jack',1)
insert into t_join_buyers values ('tom',2)
insert into t_join_buyers values ('anni',3)
insert into t_join_buyers values ('poly',4) insert into t_join_sales values (1,2,15)
insert into t_join_sales values (1,3,5)
insert into t_join_sales values (4,1,37)
insert into t_join_sales values (3,5,11)
insert into t_join_sales values (4,2,1003)

SQL子句执行顺序和Join的一点总结的更多相关文章

  1. mysql 中sql的执行顺序

    文章转自 https://www.cnblogs.com/annsshadow/p/5037667.html https://www.cnblogs.com/yyjie/p/7788428.html ...

  2. sql逻辑执行顺序

    要知道SQL语句,我想我们有必要知道SQL Server查询分析器怎么执行我们的SQL语句的,我们很多人会看执行计划,或者用Profiler来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查 ...

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

    我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动 大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么 ...

  4. sql解释执行顺序

    一.查询的逻辑执行顺序 (1) FROM left_table (3) join_type JOIN right_table (2) ON join_condition (4) WHERE where ...

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

    SQL的别名 1.不可以在where子句中使用列名的别名,即select name t from emp where t>2999;是不允许的 2.使用别名的好处: 提高SQL的易读性 提高SQ ...

  6. 你了解一条sql的执行顺序吗

    sql是后端开发人员经常碰到的问题,我们经常会写这样的sql:select name,id from student where id=12 order by id desc,把这条sql放到数据库中 ...

  7. mysql sql的执行顺序

    转:http://blog.csdn.net/u014044812/article/details/51004754 关于sql和MySQL的语句执行顺序(必看!!!) 原创 2016年03月29日 ...

  8. 关于sql的执行顺序

    标准sql的解析顺序为 1)FROM子句,组装来自不同数据源的数据 2)WHERE子句 基于制定的条件对记录进行筛选 3)GROUP BY 子句将数据划分为多个分组 4)使用聚合函数进行计算 5) 使 ...

  9. Oracle sql语句执行顺序

    sql语法的分析是从右到左 一.sql语句的执行步骤: 1)词法分析,词法分析阶段是编译过程的第一个阶段.这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构 ...

随机推荐

  1. css基础-背景文本

    css背景 1. background-color:#6495ed; 2. background-image:url('bgdesert.jpg'); 3. background-repeat:rep ...

  2. 图的广度、深度优先遍历 C语言

    以下是老师作为数据结构课的作业的要求,没有什么实际用处和可以探讨和总结的的地方,所以简单代码直接展示. 宽度优先遍历: #include<cstdio> #include<iostr ...

  3. SqlServer日期查询

    一.sql server日期时间函数 Sql Server中的日期与时间函数 1.  当前系统日期.时间 select getdate() 2. dateadd  在向指定日期加上一段时间的基础上,返 ...

  4. 用PS画一个齿轮

    以前只会画圆画方,这没技术含量.今天学了一个稍难一点的,画一个齿轮.图形有圆也有方.以下描述如何画出来的. 一.打开PS准备一画布,画一矩形并且填充颜色. 二.编辑->自由变换(CTRL+T), ...

  5. TCP连接状态图

  6. 【转】Objective-C 与 Runtime:为什么是这样?

    原文地址: http://t.cn/RyyNIXd?u=2483713130&m=3884400301576073&cu=2483713130 笔者非常高兴能为Objective-C写 ...

  7. 老了,问题定位难了,xml编码解析

    同样一个程序,在A机器好用,在B机器不好用,怀疑过jdk版本位数问题,怀疑过其他. 最后,突然发现出错的全是xml中文,想到是不是编码问题,一看环境变量果真一个gbk,一个utf-8,再一看 程序,没 ...

  8. UltraEdit的语法高亮显示配置

    今天吴同学看到我电脑中有UltraEdit好奇地问我会不会用,我那个汗啊,不会用我装它干什么啊?其实当时装UltraEdit主要是用来写Java的,没有想到,工作一忙顾及不上学习Java的事情了.于是 ...

  9. HttpRuntime类

    HttpRuntime在ASP.NET处理请求中负责的是创建HttpContext对象以及调用HttpApplicationFactory创建HttpApplication. 其定义如下: publi ...

  10. 2014.8.4我出的模拟赛【你的名字叫czy是吧】

    你的名字叫czy是吧 (mynameisczy.pas/.c/.cpp) 尽管czy放了那么多只NTR酋长,也没能拦住黄巨大.黄巨大和czy相遇了…… “你的名字叫czy是吧” “……” “我们来单挑 ...