数据分析面经整理:SQL方面

1.left、right、inner join的区别?

在这里插入图片描述

2.union和union all区别?

纵向合并两个表的数据,这时会用到UNION和UNION ALL关键字。
其区别就是:
UNION会进行数据的排序和去重,查询效率低。

UNION ALL没有进行去重和排序,查询效率高。

需要注意的是:合并的两个或多个表需要保证他们字段的个数相同,否则会报错。

3.sql语句的执行顺序

查询执行顺序
1.FROM 和 JOINs
2.WHERE
3.GROUP BY
4.HAVING
5.SELECT
6.DISTINCT
7.ORDER BY
8.LIMIT / OFFSET

4.sql三个排序函数区别(窗口函数)

row_number()按照值排序时产生一个自增编号,不会重复(如:1、2、3、4、5、6)
rank() 按照值排序时产生一个自增编号,值相等时会重复,会产生空位(如:1、2、3、3、3、6)
dense_rank() 按照值排序时产生一个自增编号,值相等时会重复,不会产生空位(如:1、2、3、3、3、4)

5.sql substring

sql substring函数用来截取字符串得一部分
SUBSTR(str,pos,len): 由<str>中的第<pos>位置开始,选出接下去的<len>个字元。

SELECT SUBSTR(store_name, 3)
FROM Geography
WHERE store_name = 'Los Angeles';

结果:
‘s Angeles’

6.sql中where和having区别

where:
where是一个约束声明,使用where来约束来自数据库的数据;
where是在结果返回之前起作用的;
where中不能使用聚合函数。

having:
having是一个过滤声明;
在查询返回结果集以后,对查询结果进行的过滤操作;
在having中可以使用聚合函数。
聚合函数就是例如SUM, COUNT, MAX, AVG等。

7.sql中where和on区别

以 LEFT JOIN 为例:在使用 LEFT JOIN 时,ON 和 WHERE 过滤条件的区别如下:
ON 条件是在生成临时表时使用的条件,它不管 ON 中的条件是否为真,都会返回左边表中的记录;
WHERE 条件是在临时表已经生成后,对临时表进行的过滤条件。因为此时已经没有 LEFT JOIN 的含义(必须返回左侧表的记录)了,所以如果 WHERE 条件不为真的记录就会被过滤掉。

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值