大家在面试数据分析岗或其他岗位的时候,时常会被问到一些SQL题,我今天就将常被问到的一些SQL题及答案整理下,给大家做个参考!
案例所使用的表为:
![acdcb6687daf98fa895cc2b43368c132.png](https://img-blog.csdnimg.cn/img_convert/acdcb6687daf98fa895cc2b43368c132.png)
(一)各种连接函数的区别?
(1)inner join
内连接。返回两个表的交集。根据两个表共有的列来匹配其中的行,强调只有两个表中共有的行对应的行才能匹配出来。
![7b4a8fa1907aa87a7735c30f1a937824.png](https://img-blog.csdnimg.cn/img_convert/7b4a8fa1907aa87a7735c30f1a937824.png)
SELECT * FROM student as a
INNER JOIN
(SELECT * FROM score) as b on a.学号=b.学号
![797f4a624853e54264e9464811c5867e.png](https://img-blog.csdnimg.cn/img_convert/797f4a624853e54264e9464811c5867e.png)
tips:inner可以省略不写,可以连接后再去重,但是这么做的话,执行下来比较低,我们一般在做表连接之前,先去重。
(2)left join
左连接。以左表为基准,若右表中的对应行不满足条件,则结果会将右表中的这些值以null的形式匹配进来。(right join就是以右表为基准,和left join是相对应的