数据仓库学习笔记六

1. Hive高级操作

1.1 SELECT语句

        Hive SELECT 语句用于对表的查询,即按照规定的语法规则从表中选取数据,并将查询结果保存在结果表中。

where子句:        

        where条件必须是布尔表达式,用于过滤结果集。

ALL,DISTIVCT子句:

        ALL与DISTINCT选项表示是否返回重复行,默认是ALL,即返回匹配的行。大多数情况下使用DISTINCT子句指出在结果集重复出现的行。

LIMIT子句:

        LIMIT子句用于限制SELECT语句返回的行数,其后的整数型参数表示共返回多少行。

公共表表达式:

        公共表表达式可以表示一个临时的结果集(表),该表通过一个简单的查询的查询指定,只要在CET语句范围内均可共享该临时表。

嵌套查询:

        嵌套查询也称为子查询,通常用于FROM子句后。

列匹配正则表达式:

        Hive SELECT语句支持使用正则表达式指定列名称,凡是符合正则表达式规则的列名将作为结果集中的一列。

虚拟列:

        虚拟列式并未在表中真正存在的列,但对于数据进行相关验证时非常有用。Hive的两个常用虚拟列介绍如下:

        INPUT__FILE__NAME:包含Mapper任务运行时输入文件名,也就是该行数据包含于哪个文件中。

        BLOCK__OFFSET__INSIDE__FILE:包含文件中的块内偏移量。

2. 关联查询

        关联查询是指对多表进行联合查询,主要通过JOIN语句将两个或多个表中的行组合在一起进行查询。HQL JOIN类似于SQL JOIN,但其仅支持等值连接,具体包括内连接(INNER JOIN)、外连接(OUTER JOIN)与交叉连接(CROSS JOIN)。

2.1 内连接

内连接用于按连接条件组合两个表中的纪录,返回两个表的交集。

2.2 外连接

(1)左外连接

        左外连接简称左连接。由内连接可以看出,结果集中的记录是在连接的两个表中都存在的记录。左连接的区别是左表的记录全部被选择,而右表只选择符合连接条件的记录,最后将无法与左表中记录进行对应的右表记录显示为NULL。

(2)右外连接

        右外连接简称右连接。与左连接相反,右连接将右表的记录全部选择,而将左表中没有符合连接条件的记录显示为NULL。

(3)全外连接

        全外连接结合了左连接和右连接的结果,即:对左表而言,右表中不符合连接好的记录显示为NULL:对右表而言,左表中不符合连接条件的记录显示为NuLL。

2.3 交叉连接

        交叉连接又称笛卡尔乘积,相当于两个表相乘。比如表A交叉连接表B,则表A中的每一条记录都与表 B中的每一条记录连接。
 

        

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值