身处互联网行业,SQL 可能是你需要掌握的核心技能之一。
最早的时候,SQL 作为一门查询数据库的语言,是程序员的必备技能,运维、开发、Web 以及数据等从业人员都需要用到 SQL,毕竟只有查询到正确的数据,才能有后面的数据加工、分析,在面试中,SQL 的考察也是一道必不可少的坎儿。
除了程序员之外,如今的互联网公司中,产品和运营也越来越要求熟练掌握 SQL,依托数据表现对产品进行优化,比如如何评判产品改版在 A/B 测试中的留存率和点击率?
与其找研发调取,还不如写一条 SQL 语句,直接从数据表中得到答案,节省很多沟通成本。如果你打开招聘网站,会发现掌握 SQL 格外具有优势。
在一项调查中,SQL 的使用人群仅次于 JavaScript。之所以火爆,一个非常大的优势在于它的变化幅度小,上手简单。
在其诞生的 45 年间,操作系统一直在迭代,语言版本层出不穷,但是 SQL 非常稳定,SQL92 和 SQL99 这两个标准一直沿用到现在,这意味着掌握 SQL 是一件一劳永逸的事情,至少在你的职业生涯中,它都可以发挥作用。从这个意义上来说,没有什么比学习 SQL 语言更具“性价比”了。
正因如此,越来越多的人把 SQL 纳入到自己的学习技能中。
但 SQL 也有一个非常讨厌的问题:上手容易,深入却很难。
- 比如:大部分人只会简单的 SQL,面对稍微复杂一点的数据需求,就不知道该怎么写了。
- 不仅如此,SQL 的语言设计原则是你告诉我做什么,我来决定怎么做,现实的系统显然没有那么智能,很多时候大家虽然写出了正确的 SQL,引擎的查询性能却异常低效,往往成为工作中的”绊脚石“。
究其根本,还是SQL 的学习浮于表面,想要系统学习的话,我在这里推荐一下极客时间的专栏《SQL必知必会》。
作者陈旸,总结了一张非常全面的 SQL 学习框架图,先对需要掌握的核心知识点有个全局的了解,内容包括:SQL 中的 DQL、DDL、 DML、 DCL的使用;SQL 的优化方法;常用的 SQL 标准解读;如何玩转各种 SQL 标准的数据库、常见的 NoSQL 等等。
这个课程有什么独特的地方?
专栏的特色之一是作者精心准备的专用数据集。在学习使用 SQL 的时候,总是需要一些数据,但目前主流的 SQL 书本或者网络上用的基本是千篇一律的数据表(比如查询超市数据表),为此他特地整理了一份“王者荣耀数据库”以及“NBA球员数据库”,以便基于此进行 SQL 的实操训练。
作者是谁?
专栏作者陈旸,博士毕业于清华大学计算机系,前 IBM 中国研究院工程师。也是极客时间专栏“数据分析实战45讲”的作者,该专栏目前已经有 1.3w 的订阅了。他从 10 岁开始编程,2 次获得全国信息学奥林匹克竞赛一等奖,2 次 ACM 国际编程比赛亚洲区铜奖。
陈旸做过一个很有意思的事儿,他曾编写微博机器人,进行内容抓取、自动发布及用户互动。通过 1 个机器人同时管理 2000+ 微博账号,累计积累超过 500万+ 粉丝。其中关键技术之一就是 SQL 的使用,它可以及时进行数据分析,制定更优质的内容抓取、广告屏蔽和用户增长趋势分析。
专栏已经上线了 8 天,近 6000 人加入学习,给大家截图点评价,作为参考。
学习之后,能收获什么?
为了让大家放心的学习,我提前看了看内容,可以总结为四个部分:
会跑之前,要先学会走。专栏第一部分重点讲解 SQL 本身的语法,比如使用 SQL 检索数据、过滤数据,如何使用SQL函数、子查询等。
同样都是用 SQL 查询数据,为什么你写的语句要比别人的慢?第二部分带你快速定位 SQL 性能问题,提高查询效率。
举个例子,之前有人写了个两张表关联的查询语句,但是他在写 SELECT 语句的时候,发现优化器评估返回的数据量为 1000 多T,总成本 2000 多 G,返回时间需要 300 多小时。实际上优化处理后,可能只需要 0.1 秒。不重视 SQL 语句的质量和优化,可能会带来高达几万倍的差别!
第三部分将通过 6 大常用数据 Oracle、MySQL、SQL Server、Access、WebSQL、SQLite,来讲解 SQL 在不同的数据库管理系统中是如何使用的。
数据是 SQL 的生命力,为避免纸上谈兵,陈旸特地建了一个王者荣耀数据库和 NBA 球员数据库,在实操中讲解,并输出实战,比如如何用 SQL 做数据清洗、数据集成等。
下面是目录,花一分钟看看,绝对可以找到你想要的。
作为一名程序员,学好 SQL 无疑是基本技能。一直很信任极客时间的课程质量,也相信陈旸可以带你从入门到数据实战,真正学好SQL这门高性价比的语言。