



资源介绍
字幕)
视频数量:17个
总时长:3小时52分
课程介绍:
SQL面试速查指南:掌握SQL模式
面试官突然问了一句:“如何找出表中重复的记录?”你脑子里一片空白,明明平时写过无数条SQL,可这种具体场景就是想不起来。别慌,这门课就是来解决这个问题的。
这门课不是什么基础入门教程,它专门针对那些有一定SQL基础、但面试前心里没底的人。课程把SQL面试中最容易踩坑、最容易被问到的问题全部梳理了一遍,而且不是讲空洞的理论,是直接告诉你面试官想听什么答案、代码怎么写、为什么这样写。
课程一上来不讲知识点,先告诉你怎么用好这门课。毕竟速查嘛,得知道快速翻到哪一节才能解决问题。这部分很短,但很关键,决定了你后面学习的效率。
很多人对WHERE和HAVING的区别模棱两可,觉得都能过滤数据,随便用哪个都行。实际上这两个子句的执行时机完全不同,WHERE在分组之前起作用,HAVING在分组之后才生效。如果搞反了,轻则查询报错,重则性能暴跌。课程会用具体的查询例子把这个区别讲透,让你以后再也不会在这个点上翻车。
说到执行顺序,SQL的逻辑处理顺序和书写顺序不一致,这是很多人写复杂查询时犯错的根源。课程专门用一节来讲解SQL的执行顺序,从FROM到SELECT到WHERE到GROUP BY再到HAVING一直到ORDER BY,每一步什么时候发生、为什么这样安排,面试中怎么用这个知识点来解释查询逻辑。
聚合函数看起来简单,但count(*)和count(某个字段)到底有什么区别?count(null)会怎么处理?count(0)又是什么情况?这些细节很多人平时不注意,面试时被问到就傻眼了。课程把各种count的用法全部对比讲解,连count(-1)这种冷门写法都覆盖到。
JOIN是面试中的重头戏,课程不仅讲基础的几种JOIN类型,还专门挑出一道最常被问到的JOIN面试题来分析。这道题特别考验对连接原理的理解,稍有不慎就会算出错误的记录数。self join自连接也是必讲的内容,很多经典问题比如查找每个部门的工资最高者、找出连续登录天数等,都需要用自连接来解决。
数据行转列和列转行是另一个高频考点。常规做法是用pivot函数,但有些数据库不支持,课程教你不用pivot函数怎么实现这个转换。这种题目面试时很常见,考察的是对SQL语法的灵活运用能力。
窗口函数是近年来面试的热门考点。rank、dense_rank、row_number这三个函数看起来差不多,用起来区别大了去了。相同分数排名时,rank会跳号,dense_rank不会跳号,row_number干脆直接按顺序排。课程用具体数据演示这三个函数的输出结果,看完就明白什么时候该用哪个。
first_value和last_value是另外两个强大的窗口函数,可以在一行数据中直接引用同一窗口内的首尾值。比如查找每个部门工资最高的那个人,普通做法要先子查询再连接,用窗口函数一行搞定。课程不仅讲语法,还通过实际案例展示这两个函数在解决复杂报表问题时的威力。
ROLLUP、CUBE和GROUPING SETS是用来做多维度聚合的利器。普通GROUP BY只能按固定维度分组,这三个函数可以同时按多个维度组合统计。比如同时看全国销售额、各省销售额、各城市销售额,一句SQL就能搞定。数据仓库场景下用得特别多,面试时问到这个说明面试官在考察你的数据处理深度。
说到数据仓库,缓慢变化维度SCD是个经典概念。历史数据变了怎么办?要不要保留修改痕迹?Type 1、Type 2、Type 3各种处理方式有什么区别?这些在数据仓库设计中是必须考虑的问题。课程把这块内容讲得很清楚,不光是为了面试,更是为了让你真正理解数据是如何被组织和管理的。
MERGE语句是另一个实用但很多人不熟悉的语法。它相当于INSERT、UPDATE、DELETE的结合体,根据条件自动决定执行哪种操作。做数据同步和增量更新时特别有用,面试中问到这个能答上来会加分不少。
视图和物化视图的区别也很容易搞混。普通视图只是保存了查询逻辑,每次访问都要重新执行;而物化视图直接保存了查询结果,访问速度快但需要手动刷新。课程从原理到用法全面对比这两个概念。
最后课程还准备了十道基础面试题和五道高级面试题,都是面试中高频出现的问题类型。做这些题不是为了背答案,而是通过练习巩固前面学到的知识点,培养在压力下快速写出正确SQL的能力。
整门课不到四小时,节奏紧凑,全是干货。没有废话式的概念罗列,每个视频都直击面试要害。学完这门课再去面试,至少在SQL这个环节心里会踏实很多。