算法工程师进化-SQL
1 引言
SQL操作往往是程序员必备的技能,对于算法工程师而言,熟练掌握SQL操作则更为重要。本文以《SQL语句执行顺序》作为学习资料,总结SQL的理论部分。
2 SQL查询语句的执行顺序
SQL语句与其他代码的处理顺序不同,在SQL中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。
SQL语句的执行中,每个步骤都会产生一个虚拟表,虚拟表的作用是作为下一个步骤的输入。这些虚拟表对于调用者不可用,只是最后一步生成的表才会返回给调用者。
那么SQL语句的运行顺序到底是怎样的呢?

- FROM:对FROM子句中的前两个表执行笛卡尔积,生成虚拟表VT1;
- ON:对VT1应用ON筛选器,只有那些满足<join_condition>的行才被插入VT2;
- OUTER(JOIN):如果指定OUTER JOIN(包括LEFT OUTER JOIN、RIGHT OUTER JOIN和FULL OUTER JOIN,经常省略OUTER)中未找到匹配的行将作为外部行添加到VT2,生成VT3。
- WHERE:对VT3应用WHERE筛选器,只有满足<where_condition>的行才被插入VT4;
- GROUP BY:按GROUP BY子句中的列队VT4进行行分组,生成VT5;
- CUBE|ROLLUP:把超组插入VT5,生成VT6;
- HAVING:对VT6应用HAVING筛选器。只有满足<having_condition>的行才被插入VT7;
- SELECT:处理SELECT列表,产生VT8;
- DISTINCT:将重复的行从VT8中移除,产生VT9;
- ORDER BY:将VT9中的行按ORDER BY子句中的列排序,生成游标(VC10);
- TOP:从VC10的开始处选择指定数量或比例的行,生成表VT11,并返回调用者;
3 参考资料
算法工程师进化-SQL的更多相关文章
- 算法工程师进化-NLP之主题模型
1 引言 主题模型是文本挖掘的重要工具,近年来在学术界和工业届都获得了非常多的关注.学术界的工作主要集中在建模层面,即提出各种各样的主题模型来适应不同的场景,因此缺乏指导主题模型在工业场景落地的资源和 ...
- sloth——算法工程师标注数据的福音
一般算法工程师做标注,都要先开发个标注工具,无非下面几个选项: 1.mfc,C#,优点是交互界面友好,开发难度适中,缺点是没法跨平台 2.matlab,优点是可以跨平台,开发难度非常低,缺点是速度慢. ...
- 阿里巴巴算法工程师四面(三轮技术+hr面)详细面经
阿里面试总结: 一遍一遍地刷阿里网站,今天发现“面试中”变成“待跟进offer”了,写个面经攒人品,希望offer通知邮件早点来吧. 我当时投简历时投了C/C++工程师,其实也没经过啥考虑,因为我一开 ...
- 算法工程师:双非渣硕是如何获得百度、京东双SP
本人本科硕士皆双非,和牛客大佬们没得比,目前拿到的还可以的offer就是百度SP和京东SP,都是做的推荐算法,其他的不说了. 先说一下个人经历吧,学校比较水,实验室没有项目,实习经历:腾讯实习+滴滴实 ...
- 算法工程师想进一步提高竞争力?向TensorFlow开源社区贡献你的代码吧
算法工程师为什么也要向社区贡献代码? [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] “做算法的人要熟悉算法框架源码吗?算法工程师难 ...
- 《AI算法工程师手册》
本文转载自:http://www.huaxiaozhuan.com/ 这是一份机器学习算法和技能的学习手册,可以作为学习工作的参考,都看一遍应该能收获满满吧. 作者华校专,曾任阿里巴巴资深算法工程师, ...
- (zhuan) 大牛讲堂 | 算法工程师入门第二期-穆黎森讲增强学习
大牛讲堂 | 算法工程师入门第二期-穆黎森讲增强学习 2017-07-13 HorizonRobotics
- 算法工程师A
美团点评2017校招笔试真题-算法工程师A 美团点评2017校招笔试真题-算法工程师A 1.下面哪种STL容器的实现和其它三个不一样 A. set B. deque C. multimap D. ...
- 算法工程师B
美团点评2017校招笔试真题-算法工程师B 1.以下关于经典的k-means聚类的说法哪个是错误的? A:k-means聚类算法是全局收敛的 B:k-means的聚类结果和初始聚类中心点的选取有关 ...
随机推荐
- 各版本eclipse的maven配置
1.indgo(3.7) install new software: http://download.eclipse.org/releases/indigo
- ABAP知识点提纲
编号 课程名称 课程内容 预计课时 10.1.1~10.1.2 SAP系统与产品集 1. 了解SAP常见产品 ,了解SAP系统架构 1 10.1.3~10.1.4 导航界面与用户界面 1. 了解SAP ...
- ES6新特性4:字符串的扩展
本文摘自ECMAScript6入门,转载请注明出处. 一.ES5字符串函数 concat: 将两个或多个字符的文本组合起来,返回一个新的字符串. indexOf: 返回字符串中一个子串第一处出现的索引 ...
- 关于ESP8266EX的一些资料
乐鑫智能互联平台 ESP8266EX 拥有高性能无线 SOC,给移动平台设计师带来福⾳音,它以最低成本提供最大实用性,为 WiFi 功能嵌入其他系统提供无限可能. ESP8266EX 是⼀一个完整且⾃ ...
- Kafka设计解析(七)Kafka Stream
转载自 技术世界,原文链接 Kafka设计解析(七)- Kafka Stream 本文介绍了Kafka Stream的背景,如Kafka Stream是什么,什么是流式计算,以及为什么要有Kafka ...
- Carthage 的使用
第一步,当然是安装 Carthage,网上找吧 第二步,找到你要用的那个仓库,eg:https://github.com/jiutianhuanpei/SHBPlayer 第三步,cd 到工程根目录下 ...
- 1554: SG Value (巧妙的模拟题,也属于思维题)
1554: SG Value Submit Page Summary Time Limit: 5 Sec Memory Limit: 256 Mb Submitted: 4 ...
- zabbix 主动模式和被动模式配置文件对比
1.主动模式: 在web上看zabbix available 是红色 [root@python ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_agentd.conf ...
- 【图像处理】Schmid滤波器
Schmid也是一种类Gabor图像滤波器,在这篇文章[1]中有详细推导和介绍. 一种更简洁的表达公式是: 当中,r为核半径,Z为归一化參数,τ和σ是比較重要的參数,在ReID提取TextFeatur ...
- Activity Monitor 闪退 & 无法进入睡眠
情况描述 黑苹果主机突然无法进入睡眠. 考虑到可能是后台程序阻碍了系统正常进入睡眠, 于是想要通过Activity Monitor查看系统的活动情况,然而,Activity Monitor闪退. 重 ...