这也是一篇不完全的翻译,有兴趣的读者可以查看原文。

下面的SQL语句的执行顺序只是逻辑上的顺序,在实际中优化器会选择最省时省力的顺序:

  1. FROM:这个只需要说一点的是JOIN这一步包含在FROM里面,总之就是先确定表,加载所有表的所有行
  2. WHERE:过滤掉不需要的行
  3. GROUP BY:根据表达式或者列名来聚合(分组),分组完成后,所有的列只剩下了作为组名的列,组内部只对聚合函数可见。
  4. 聚合函数:聚合函数相当于可以进入分组的内部,然后计算出一个只有一个值的结果,例如组内的最大最小平均总和。
  5. HAVING:过滤掉聚合后的不需要的行
  6. 窗口函数:在此时的所有行开窗口,并在窗口内执行窗口函数
  7. SELECT:选择需要的列,也叫project,投射
  8. DISTINCT:在选择的列里面进行(xing)行(hang)去重
  9. UNION,INTERSECT,EXCEPT:对得到的结果进行集合操作
  10. ORDEY BY:对进行完集合操作后得到的结果集排序
  11. OFFECT:没见过,不知道是干嘛的,别人说“Don’t use offset”
  12. LIMIT,FETCH,TOP:最后选择前几行作为最终的结果

SQL语句中的执行顺序相关推荐

  1. SqlServer中Sql语句的逻辑执行顺序

    准备数据 Sql脚本如下,两张表,一张客户表Customers只包含customerid和city字段,一张订单表Orders包含orderid和customerid(关联Customers的cust ...

  2. Hive SQL语句的正确执行顺序

    前言:hive的执行顺序也是总结mapreduce的执行顺序!!! 关于 sql 语句的执行顺序网上有很多资料,但是大多都没进行验证,并且很多都有点小错误,尤其是对于 select 和 group b ...

  3. SQL语句中各个部分的执行顺序(转)

    原文链接:http://www.tuicool.com/articles/fERNv2 写在前面的话:有时不理解SQL语句各个部分执行顺序,导致理解上出现偏差,或者是书写SQL语句时随心所欲,所以有必 ...

  4. mysql语句的执行顺序_SQL语句完整的执行顺序(02)

    这是对SQL语句完整的执行顺序(01)的补充: 数据库是mysql,使用的数据库表名称是my_student. 表的完整数据信息是: 完整语法是: Select [select选项] 字段列表[字段别 ...

  5. SQL语句中 and or执行优先级

    首先,sql语句中not and or的执行优先级从高到低依次为:not,and,or 举例如下: select * from table where a=1 and b=2 or c=3 and d ...

  6. 【C# .NET】Oracle数据库连接的坑之传入parameters参数名SQL语句中的参数变量名不匹配(顺序不一致)的问题

    问题描述 有一个user表,需要修改id为10086的用户的姓名和年龄,在C#的后台这样写: using (IDbConnection db = DapperFactory.GetConnection ...

  7. SQL Select语句完整的执行顺序:

    SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函 ...

  8. oracle 执行带参数的sql语句_当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现?...

    当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现? 描述详细一点就是:在要执行的SQL语句中所用到(: parameter)这种参数的个数,因具体条件不同,而 ...

  9. SQL允许你用EXECUTE执行一个变量中定义的SQL语句,并且允许你在被执行的SQL语句中,再次嵌套入一个变量定义的语句,并且再次在其中用EXECUTE执行它...

    declare @sqlstr varchar(3000) set @sqlstr='declare @subsqlstr varchar(1000);' set @sqlstr=@sqlstr+'s ...

最新文章

  1. gitlab 邮件配置(smtp)
  2. SQL Server里Grouping Sets的威力
  3. C语言详解 - 数组
  4. 计算机应用技术自创ppt,教师必备:超好用的课件制作工具
  5. Ngnix的TCP和UDP负载平衡配置
  6. Windows Phone 7三触控程序开发
  7. python bokeh_浅谈python可视化包Bokeh
  8. 如何设置 Web 服务器的权限之iis
  9. python生成10个随机数字符串_python生成随机数、随机字符串
  10. java kv对象_java入门之——对象转型
  11. 在ClassWizard无法显示添加的类解决方法(转载)
  12. 在Sohu的最后一个作品-2011版大视野
  13. STC学习:乒乓球游戏
  14. 批量修改联系人头像_视频号pr批量剪辑0基础实操课,pr批量处理伪原创一分钟一个视频【共2节】...
  15. Web实现:仿大学英语四级成绩查询 html css 含效果图
  16. 项目jar包启动的命令
  17. 网易面试总结——面试案例5~面试案例8
  18. 【深度学习模型】讲讲横扫nlp任务的BERT模型
  19. 字母对应的日期 moment Element JAVA oracle mysql的日期格式
  20. python爬虫 - scrapy的安装和使用

热门文章

  1. 你为什么被好友拉黑?
  2. h5和css3新特性
  3. Leecode 第 289 场周赛 6072. 转角路径的乘积中最多能有几个尾随零 前缀和
  4. (HTML学习)MDN测验——构建网页内容
  5. 【Android】图片资源的加载、简单处理
  6. 新生儿红疹的注意事项
  7. 网上采购android智能手机,在这里您可以订购 Sony Android智能手机
  8. Linux安装阿里云镜像加速器
  9. Python调用ansys 建立模型
  10. 课堂笔记typro使用方法