加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Apache Flink 漫谈系列 - SQL概览

发布时间:2018-11-15 16:12:14 所属栏目:教程 来源:孙金城
导读:一、SQL简述 SQL是Structured Query Language的缩写,最初是由美国计较机科学家Donald D. Chamberlin和Raymond F. Boyce在20世纪70年月早期从 Early History of SQL 中相识相关模子后在IBM开拓的。该版本最初称为[SEQUEL: A Structured English Query Lang

各人看到在 SELECT 不只可以行使平凡的字段选择,还可以行使ScalarFunction,虽然也包罗User-Defined Function,同时还可以举办字段的alias配置。着实SELECT可以团结聚合,在GROUPBY部门会举办先容,一个较量非凡的行使场景是携带 DISTINCT 要害字,示譬喻下:

(1) SQL 示例

在订单表查询全部的客户id,消除一再客户id, 如下:

  1. SELECT DISTINCT c_id FROM order_tab; 

(2) Result

Apache Flink 漫谈系列 - SQL概览

六、WHERE

WHERE 用于从数据集/流中过滤数据,与SELECT一路行使,语法遵循ANSI-SQL尺度,语义是相关代数的Selection,按照某些前提对相关做程度支解,即选择切合前提的记录,如下所示:

Apache Flink 漫谈系列 - SQL概览

1. SQL 示例

在customer_tab查询客户id为c_001和c_003的客户信息,如下:

  1. SELECT c_id, c_name, c_desc FROM customer_tab WHERE c_OR c_; 

2. Result

Apache Flink 漫谈系列 - SQL概览

3. 出格声名

我们发明WHERE是对满意必然前提的数据举办过滤,WHERE支持=, <, >, <>, >=, <=以及AND, OR等表达式的组合,最终满意过滤前提的数据会被选择出来。而且 WHERE 可以团结IN,NOT IN连系行使,详细如下:

(1) SQL 示例 (IN 常量)

行使 IN 在customer_tab查询客户id为c_001和c_003的客户信息,如下:

  1. SELECT c_id, c_name, c_desc FROM customer_tab WHERE c_id IN ('c_001', 'c_003'); 

(2) Result

Apache Flink 漫谈系列 - SQL概览

(3) SQL 示例 (IN 子查询)

行使 IN和 子查询 在customer_tab查询已经下过订单的客户信息,如下:

  1. SELECT c_id, c_name, c_desc FROM customer_tab WHERE c_id IN (SELECT c_id FROM order_tab); 

(4) Result

Apache Flink 漫谈系列 - SQL概览

(5) IN/NOT IN 与相关代数

如上先容IN是相关代数中的Intersection, NOT IN是相关代数的Difference, 如下图表示:

  • a. IN(Intersection)

Apache Flink 漫谈系列 - SQL概览

  • NOT IN(Difference)

Apache Flink 漫谈系列 - SQL概览

七、GROUP BY

GROUP BY 是对数据举办分组的操纵,好比我必要别离计较一下一个门生表内里女生和男生的人数别离是几多,如下:

Apache Flink 漫谈系列 - SQL概览

1. SQL 示例

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读