面试官:你对SQL了解多少?
小菜鸡:SQL很简单啊!
面试官:... 你先回去等通知吧。
对于一个极短的SQL,"select * from product where id = 1024",SQL的确很简单。
但对于那些进行数据分析、数据处理的SQL,动辄几百行上千行,你可能就不会这么说了。
在互联网公司中,产品经理需要依托数据表现对产品进行优化,比如根据产品改版在A/B测试中的留存率和点击率,来进行下一步的功能迭代和产品演进。
那么,问题来了,这个数据谁来出?
如果是一次、两次,产品小MM,可以撒个娇求助开发同学给拉一下数据,但是时间久了,开发同学也不想搭理你(除非貌如天仙),KPI你吃了,苦力我全干了?
所以最终,产品经理只能自食其力,掌握一些基本的SQL能力,自己去拉取相关的数据,这样就不用看开发小哥脸色了。
SQL这个语言在其诞生的45年间,可谓是非常之稳定,操作系统一直在迭代,语言版本层出不穷,但是SQL92和SQL99这两个标准一直沿用到现在,这是不是可以说,学会了SQL,就可以一直用下去了,至少在你的职业生涯中,它都可以发挥作用。
正因如此,越来越多的人把 SQL 纳入到自己的学习技能中。
身边不少人都会用到 SQL,但我发现大部分同学掌握 SQL 的程度,还停留在“初步了解”的阶段,甚至一些后端开发工程师,还在摸索着学习,更别提“熟练掌握”了。遇到的问题大多是以下两类:
学过很简单的 SQL,面对基本的需求没有问题,但当面对稍微复杂一点的数据需求,总会力不从心,找不到窍门。
由于上手容易,在学习初期不拘小节,忽略了语句编写带来的性能问题。在后期导致 SQL 的使用效率很低,成为了工作中的“绊脚石”。
总结而言就是 SQL 的学习仅仅浮于表面,那么如何系统的学习 SQL?在这里我找到一张非常全面的 SQL 学习框架图,内容包括:SQL 中的 DQL、DDL、 DML、 DCL的使用;SQL 的优化方法;常用的 SQL 标准解读;如何玩转各种 SQL 标准的数据库、常见的 NoSQL 等等。
在学习使用 SQL 的时候,总是需要一些数据,但目前主流的 SQL 书本或者网络上用的基本是千篇一律的数据表(比如查询超市数据表),为此他特地整理了一份“王者荣耀数据库”以及“NBA球员数据库”,以便基于此进行 SQL 的实操训练。就游戏而言,数据查询就涉及很多知识点,包括多表联查、分区分库、用户权限、排行榜、大规模并发和用户数据安全等等。
你会收获什么?
为了让大家放心的学习,我提前看了看内容,可以总结为四个部分:
熟练掌握 SQL 语法
会跑之前,要先学会走。SQL的语法非常简单,就像英语一样,但正因如此,很多人写的时候并不注意,比如搞混了关键词的顺序等,专栏第一部分重点讲解 SQL 本身的语法,比如使用 SQL 检索数据、过滤数据,如何使用SQL函数、子查询等。
实战 SQL 性能优化
同样都是用 SQL 查询数据,为什么你写的语句要比别人的慢?第二部分带你快速定位 SQL 性能问题,提高查询效率。
举个例子,之前有人写了个两张表关联的查询语句,但是他在写 SELECT 语句的时候,发现优化器评估返回的数据量为1000多T,总成本2000多G,返回时间需要300多小时。实际上优化处理后,可能只需要0.1秒。不重视 SQL 语句的质量和优化,可能会带来高达几万倍的差别!
玩转 6 大常用数据库
在实际工作中,大家经常会接触到不同的关系型数据库管理系统,第三部分将通过6大常用数据Oracle、MySQL、SQL Server、Access、WebSQL、SQLite,来讲解 SQL 在不同的数据库管理系统中是如何使用的。
以自建数据库为例,进行 SQL 实操
数据是SQL的生命力,为避免纸上谈兵,陈旸特地建了一个王者荣耀数据库和NBA球员数据库,在实操中讲解,并输出实战,比如如何用SQL做数据清洗、数据集成等。
下面是目录,花一分钟看看,绝对可以找到你想要的
网友评论