原文:
www.kdnuggets.com/top-5-free-resources-for-learning-advanced-sql-techniques
作者提供的图像
互联网充斥着学习 SQL 的资源。当然,大多数都需要付费获得知识。这些资源主要教你基本的或最好的中级 SQL。
问题是,如何学习 SQL并且是免费的。是否有任何资源可以教你高级 SQL 而无需支付?
是的,确实有。事实上,正如我发现的那样,至少有五个。
在寻找课程之前,我必须定义什么是高级 SQL。
这不容易确定,因为不同的专家对哪些 SQL 概念可以被认为是高级有不同的看法(以及教学经验)。
不过,我认为可以安全地说,这些主题属于高级 SQL:
-
连接
-
公共表表达式(CTEs)
-
递归公共表表达式(CTEs)
-
子查询和相关子查询
-
窗口函数
-
数据透视和反透视
-
层次查询
-
视图
-
存储和用户定义的过程及函数
-
触发器
-
临时表
-
索引
-
数据规范化
-
性能优化
然而,这个列表还不完整。其他一些也属于高级 SQL 的主题可以被添加进来。怎么判断它们是否属于高级?我有一个高度非科学但有效的方法:如果你不知道某个特定主题的含义,它很可能是高级 SQL。
作者提供的图像
我在这里列出的资源涵盖了我之前提到的一些或大部分高级 SQL 概念。如果你结合这些资源,你的高级 SQL 知识可以变得更加完善。是的,我知道这需要更多的努力,但这些都是免费的,你还能期待什么呢?
描述:本教程教你在 Mode BI 工具中学习高级 SQL。无需担心你需要学习另一种 SQL 方言;Mode 使用的是标准 SQL。
所有概念都以理论形式详细解释。在每一节中,还有互动练习,你可以通过编写 SQL 查询来解决问题并检查答案。
说到概念,你将学习子查询、窗口函数、SQL 查询优化和数据透视。此外,还有关于数据类型、日期格式和字符串函数的课程。
如果你觉得在这些课程中的某些较少进阶的主题上遇到困难,你可以随时在基础 SQL 和中级 SQL 章节中重新学习。
资源链接:edX
描述:该课程是斯坦福大学提供的五门数据库课程之一,并由 edX 主办。
在高级主题中,你将学习索引以提高查询性能、事务、数据库约束和触发器以及视图。
完成此课程需要两周时间,每周 8-10 小时。
此外,如果你对这些主题感兴趣,你还可以参加关于OLAP 和递归、建模和理论和半结构化数据的课程。
资源链接:Kaggle 高级 SQL
描述:Kaggle 的这门小课程仅需四小时完成。它涵盖 JOIN 和 UNION、分析(或窗口)函数、嵌套和重复数据以及编写高效查询的技巧。
每节课提供详细的理论解释,并附有实际示例。每节课结束时,你会找到一个链接,该链接会测试你的理解,给出一些编写代码来解决的练习。
资源链接:YouTube
描述:此视频课程由德国图宾根大学数据库研究组提供讲座。
共有 58 个视频,大多数时长约半小时。内容涵盖子查询、集合操作、GROUP BY 扩展、数据类型、数组、窗口函数、用户定义函数、递归 CTE 等许多主题。
资源链接:菲利普·格林斯潘个人网站
描述:这本在线书籍由菲利普·格林斯潘编写,他是美国的计算机科学家和教育家。
通过代码和实际示例相结合的理论和实践解释。大多数示例使用 web 服务的数据模型,并以 Oracle SQL 方言编写。
该资源将教你触发器、视图、树、数据库调优等更多内容。
作为额外福利,我想加入两个几乎免费的资源:StrataScratch(是的,就是我创办的平台)和 LeetCode,这两个平台提供实际的 SQL 编程面试题。
几乎是免费的,指的是非常便宜?不是,指的是需要付费订阅才能访问所有问题,但也有大量的免费问题。
我们在StrataScratch 上有 75 个免费问题,大多数难度为中等或困难。你一定会找到一些问题来测试你的高级 SQL 知识。为了方便你搜索,我们提供了详细的筛选功能,可以按主题、难度、公司等进行筛选。
还有一个互动代码编辑器,可以用多种 SQL 方言(PostgreSQL、SQL Server、MySQL 和 Oracle)编写解决方案并进行验证。所有问题都有提示和详细解释的官方解决方案。
LeetCode的问题数量与我计算的数量相同。然而,大多数情况下,这些问题被分类为简单或中等,这可能会使寻找高级主题变得稍微困难一些。不过,我相信你一定能找到一些很好的问题来练习我在文章开头提到的主题。像 StrataScratch 一样,LeetCode 也有详细的解决方案和一个互动代码编辑器,支持多种 SQL 方言的代码编写。
就这样——五个免费教授高级 SQL 技巧的资源。它们也是优质资源,有助于更好地学习。
三个资源是经典的在线 SQL 课程,涵盖不同的高级主题。我还加入了一些不同的内容:一个由顶级德国大学提供的 YouTube 课程和一本由公认专家和教育者撰写的在线书籍。
这些资源中涵盖的一些主题有所重叠,但也有些是每个资源独有的。如果你在某个课程中找不到你需要的内容,你可以随时结合这些资源来填补空白。
作为额外福利,有两个面试问题平台,StrataScratch 和 LeetCode,提供了一些免费的问题。
我希望你能发现这些都是学习高级 SQL 的宝贵资源。祝学习愉快!
****内特·罗西迪****是一名数据科学家,专注于产品战略。他还是一名兼职教授,教授分析学,并且是 StrataScratch 的创始人,这个平台帮助数据科学家准备面试,提供来自顶级公司的真实面试问题。内特撰写关于职业市场的最新趋势,提供面试建议,分享数据科学项目,并覆盖所有 SQL 相关内容。
1. Google 网络安全证书 - 快速开启网络安全职业生涯。
2. Google 数据分析专业证书 - 提升您的数据分析能力
3. Google IT 支持专业证书 - 支持您的组织 IT