Hive 数据关联操作

一、SELECT语句

1.where子句

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

2.ALL、DISTINCT子句

ALL与DISTINCT选项表示是否返回重复行,默认是ALL,即返回所有匹配的行。

3.LIMIT子句

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

4.公共表表达式

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

5.嵌套查询

通常用于FROM子句后。

6.列匹配正则表达式

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

7.虚拟列

虚拟列是并未在表中真正存在的列,但对于数据进行相关验证时非常有用。

二、关联查询

1.内连接 inner join

内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。

2. 左外连接 left outer join

join操作符==左边表中==符合where子句的所有记录将会被返回。

右边表的指定字段没有符合条件的值的话,那么就使用null值替代。

案例实操:查询老师对应的课程

select * from teacher t left outer join course c on t.t_id = c.t_id;


3. 右外连接 right outer join

join操作符==右边表中==符合where子句的所有记录将会被返回。

左边表的指定字段没有符合条件的值的话,那么就使用null值替代。

案例实操

select * from teacher t right outer join course c on t.t_id = c.t_id;

4.交叉连接cross join

交叉连接的数据条数就是两个表的笛卡尔积(两表数据条数之积),交叉连接后的数据不存在配对关系,其sql甚至不需要指定连接规则

select s.*,c.* from students s cross join class c;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值