加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (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

UNION ALL 将两个表归并起来,要求两个表的字段完全同等,包罗字段范例、字段次序,语义对应相关代数的Union,只是相关代数是Set荟萃操纵,会有去一再操纵,UNION ALL 不举办去重,如下所示:

Apache Flink 漫谈系列 - SQL概览

1. SQL 示例

我们简朴的将customer_tab查询2次,将查询功效归并起来,如下:

  1. SELECT c_id, c_name, c_desc FROM customer_tab 
  2. UNION ALL 
  3. SELECT c_id, c_name, c_desc FROM customer_tab 

2. Result

Apache Flink 漫谈系列 - SQL概览

3. 出格声名

UNION ALL 对功效数据不举办去重,假如想对功效数据举办去重,传统数据库必要举办UNION操纵。

九、UNION

UNION 将两个流给归并起来,要求两个流的字段完全同等,包罗字段范例、字段次序,并其UNION 差异于UNION ALL,UNION会对功效数据去重,与相关代数的Union语义同等,如下:

Apache Flink 漫谈系列 - SQL概览

1. SQL 示例

我们简朴的将customer_tab查询2次,将查询功效归并起来,如下:

  1. SELECT c_id, c_name, c_desc FROM customer_tab 
  2. UNION 
  3. SELECT c_id, c_name, c_desc FROM customer_tab 

我们发明完全一样的表数据举办 UNION之后,数据是被去重的,UNION之后的数据并没有增进。

2. Result

Apache Flink 漫谈系列 - SQL概览

3. 出格声名

UNION 对功效数据举办去重,在现实的实现进程必要对数据举办排序操纵,以是非须要去重环境请行使UNION ALL操纵。

十、JOIN

JOIN 用于把来自两个表的行连系起来形成一个宽表,Apache Flink支持的JOIN范例:

  • JOIN - INNER JOIN
  • LEFT JOIN - LEFT OUTER JOIN
  • RIGHT JOIN - RIGHT OUTER JOIN
  • FULL JOIN - FULL OUTER JOIN

JOIN与相关代数的Join语义沟通,详细如下:

Apache Flink 漫谈系列 - SQL概览

1. SQL 示例 (JOIN)

INNER JOIN只选择满意ON前提的记录,我们查询customer_tab 和 order_tab表,将有订单的客户和订单信息选择出来,如下:

  1. SELECT * FROM customer_tab AS c JOIN order_tab AS o ON o.c_id = c.c_id 

2. Result

Apache Flink 漫谈系列 - SQL概览

3. SQL 示例 (LEFT JOIN)

LEFT JOIN与INNER JOIN的区别是当右表没有与左边相JOIN的数据时辰,右边对应的字段补NULL输出,语义如下:

Apache Flink 漫谈系列 - SQL概览

对应的SQL语句如下(LEFT JOIN):

  1. SELECT ColA, ColB, T2.ColC, ColE FROM TI LEFT JOIN T2 ON T1.ColC = T2.ColC ; 

仔细的读者也许发明上面T2.ColC是添加了前缀T2了,这里必要声名一下,当两张表有字段名字一样的时辰,我必要指定是从谁人表内里投影的。

(编辑:湖南网)

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

热点阅读