前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >互联网SQL面试真题来啦!

互联网SQL面试真题来啦!

作者头像
猴子数据分析
发布2022-07-13 17:13:46
发布2022-07-13 17:13:46
58500
代码可运行
举报
文章被收录于专栏:猴子数据分析猴子数据分析
运行总次数:0
代码可运行

【面试题】这是某互联网公司的面试题。

表a和表b如下,相同字段为ID,如何通过查询完成下列各项任务?

问题1:表a、表b的交集

问题2:表a、表b的并集

问题3:存在表a、但不存在表b的元素,同时存在表b,但不存在表a的元素

【问题1解题思路】:

表a、表b的交集

此题主要考察的是表与表之间内部联结方法,用inner…join…on语句联结,此题SQL代码为:

代码语言:javascript
代码运行次数:0
复制
select a.ID
from 表a as a inner join 表b as b
on a.ID=b.ID;

问题1 SQL运行结果:

ID

2

3

【本题考点】

1、内部联结的应用

内部联结,用”…inner…join … on 条件…“语句,内部联结取两个表的交集,图示如下:中间的部分为交集:

此题的交集为:

2、表别名的用法

表的别名,用 as 定义别名,缩短了SQL语句,让查询语句比较简洁,并且可以多次使用。

【问题2解题思路】:

表a、表b的并集

此题考察的是表的并集union的用法,使用union把两个表并起来。

代码语言:javascript
代码运行次数:0
复制
select *
from 表a
union
select *
from 表b;

问题2 SQL运行结果

ID

1

2

3

4

5

6

【本题考点】

1、此题重点考察的是组合查询的union的用法

2、union的使用规则:

1) 必须有2个以上的select 语句组成,中间用union联结

2) union前后的select 语句必须是相同的列,表达式、聚集函数

3、union与union all的区别(如下图示)

union把查询结果相同的行自动去除了,本题用的union,表a、表b中共同的元素2、3,各保留了一个。union all 返回满足所有条件的元素。

【问题3解题思路】:

存在表a、但不存在表b的元素,同时存在表b,但不存在表a的元素

这个题有两种解法

(一)用left join、right join。详细用法见内部、外部联结。先选出存在表a,不存在表b的元素

代码语言:javascript
代码运行次数:0
复制
select a.ID
from 表a left join 表b
on a.ID=b.ID
where b.ID is null;

sql运行结果:

ID

1

4

即:

然后再选出存在表b,不存在表a的元素

代码语言:javascript
代码运行次数:0
复制
select b.ID
from 表a right join 表b
on a.ID=b.ID
where a.ID is null;

sql运行结果

ID

5

6

即:

最后用union合并在一起

代码语言:javascript
代码运行次数:0
复制
select a.ID
from 表a left join 表b
on a.ID=b.ID
where b.ID is null
union
select b.ID
from 表a right join 表b
on a.ID=b.ID
where a.ID is null;

sql运行结果

ID

1

4

5

6

(二)用not 排除法

1、“存在表a,但不存在表b”,把属于表b的元素排除掉。

代码语言:javascript
代码运行次数:0
复制
select *
from 表a
where ID not in (select ID from 表b);

2、题意中要求“…… 同时 ……“,把存在表a,不存在表b的元素,”与“存在表b,不存在表a的元素”的两个并列条件,用union联结起来

代码语言:javascript
代码运行次数:0
复制
select *
from 表a
where ID not in (select ID from 表b)
union 
select *
from 表b 
where ID not in (select ID from 表a);

SQL运行结果

ID

1

4

5

6

【本题考点】

1、not 排除后面的条件,一般与in联用,in指定范围

2、union的用法,见问题2,此题的图示为:

3、子查询,从里到外处理,里面的查询结果是外层的条件。

【此面试题的总结】:

此面试题比较简单,主要考察表的内联结、表的并集,子查询、not in的用法,虽然比较简单,但是是SQL的最基础的用法,需要打实功底。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猴子数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档