面试常问SQL问题

  1. 左右连接区别,你还知道哪些连接方式
    左连接返回左表的所有记录以及右表与连接条件相关联的记录;右连接返回右表的所有记录以及左表与连接条件相关联的记录。
    除了左连接和右连接外,还有内连接、全外连接。

  2. 窗口函数有哪些,他们的区别是什么
    窗口函数也叫OLAP函数,可以在滑动窗口上实现各种统计操作的函数,有窗口聚合、窗口排名、窗口极值、窗口行位移、窗口分布。具体请看:窗口函数(SQL和pandas)

  3. SQL的执行顺序是什么
    form —> on —> join —> where —> group by —> having —> select —> order by —> limit

  4. 遇到SQL查询过慢,如何优化
    查询时条件尽量走索引,减少子查询的层数,筛选数据尽量在子查询里筛选
    所有表尽量使用Innodb存储引擎;
    尽量不要查询所有字段,建议查询具体字段;
    避免在where子句中使用 or 来连接条件,建议少用!=或<>逻辑判断符,建议减少对字段进行 null 值判断,in和not in少用,like时的字段前不能用%,主要避免全表扫描

  5. 窗口求和函数和聚合求和函数的区别
    窗口求和函数返回所有记录且同一个结果在每个记录上;
    聚合求和函数返回一条记录且记录为求和的结果数据

  6. 筛选条件where 和having的区别
    where是对查询的数据做筛选;having是对分组后的数据做筛选

  7. where和on的区别
    where是查询的筛选条件的关键字;on是筛选条件里的范围查找

  8. union 和union all 的区别
    相同点:都是取并集
    不同点:union 不包含重复(相当于使用distinct),结果排序;union all包含重复,结果不排序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值