关于SQL,我有一些肺腑之言,助你独当一面

本文核心内容思维导图


一、学SQL的苦恼


很多朋友向我请教过如何学习SQL,我发现大家在学习 SQL 的时候,最大的问题不是 SQL 语法,而是对 SQL 原理的不熟悉。


对于初学者而言,往往被 SQL 能做什么,为什么会有 SQL 这门语言给迷惑到了。这篇文章,笔者希望给大家提供一种轻松学 SQL 的方法。

二、SQL 的原理


SQL 的原理,说白了非常简单,一言以蔽之:集合运算


所有复杂的 SQL 语句,命令都是围绕着这个本质在做文章。来,让我们回顾一下集合的概念集合,最简单的例子就是数组,比如 { a, b, c, d}。

三、SQL 的数学基础


无非就是交换律/结合律/分配率/同一律千万别被教科书上的数学符号吓到,而失去了学习SQL的兴趣。我知道对你完全是小菜一碟。

四,在线运行SQL工具


推荐可在线执行SQL的工具: http://sqlfiddle.com/
这款工具,有两大特点:

  • 支持六大数据库,MySQL,Oracle,SQL Server,PostgreSQL,SQLite;
  • 支持在线编辑及执行SQL,无需自搭数据库环境

简单了解下:

可以选择任意数据库进行模拟操练,免去搭环境的时间。我们成功的完成了第一步。

五、SQL 简易实战

基础阶段无非就是增删改查,本文就不再一一演示。

到此为止,所有的SQL基本操作你都会了。

六、SQL 晋级分水岭


勤能补拙是良训,一分辛苦一份才。高薪意味着有竞争力,有竞争力意味着花过功夫磨炼,看一遍就会的东西是要烂大街的。


因此当大家都度过第一阶段之后,如何意识到还有第二阶段,第三阶段,甚至第四阶段就很重要了。那会影响你的长期发展。舒适区是留给平庸者的。

注:技术角度可分为入门,初级,高级,资深这四个阶段,并不代表做到资深,你一定能年薪百万。很多朋友咨询我的第一个问题是,“老师,以我的水平,能要个30K不?” 这我不打包票,能做到什么收入完全看你水平和天意(没错,很多时候,赚大钱靠运气)

刷过几道题之后,SQL的基本语法掌握了。然后进入下一个阶段,开始大量刷题。简单粗暴。这里推荐牛客网,不再多做介绍。

理论结合实战,推挤几本书基础类书籍,具体看哪一本,依据你使用的数据库软件来:
《SQL 必知必会》(综合)
《T-SQL Querying》中文《T-SQL 查询》(SQL Server适用)
《Oracle编程艺术》(Oracle适用,只要是 ASK Tom 主编 Thomas Kyte 的著作不会错)

七、SQL 数据库深入学习


过了大量刷题的阶段,可以说基本上所有的 SQL 命令你都掌握了,面试也更有自信了,接下来应该来挑战下高难度了。

SQL你会写了,小王也会写,但是你写的SQL要执行20s,小王写的只需要0.2s,你说上线谁的?

这不是一道选择题。到了该修炼下SQL性能调优的时候了,这才是你迈向大神的坚实的一步。

这里推荐几本经典书籍:

综合类的数据库调优书:

《数据库索引设计与优化》
《数据查询优化器的艺术》

Oracle 相关调优书:

《Oracle Concepts》
《Oracle 体系架构》


MySQL 相关调优书:

《高性能 MySQL》

SQL Server 相关调优书:

《Inside SQL Server 》系列
《T-SQL 性能调优密集-基于 SQL Server 2012 窗口函数》

这些书看下来应该会耗掉你2-3年的时间(如果你认真钻研的话)。

八、SQL 人的职业生涯


终于来到这里了,当任何超过5秒的SQL,在你手下都变成了秒出时,恭喜你,你已经成为别人眼中的SQL优化大师了。

此时,你到达了职业生涯的分水岭。

走向技术专家 or 转向管理层如果你就喜欢指挥机器干活,那就选择偏技术的方向,比如运维DBA,数据库研发。

从事这条路线,意味着你要懂的更多的边角料知识,比如操作系统,网络协议,自动化编程,架构设计,分布式计算,云计算等。这些知识资料有现成的资料可以参考,只要耐得下心来学,一定有成功出头的那一天。

但也极其容易放弃,因为东西实在太多,太杂,而且有些边缘性的学科,一时半会你还用不到。

前进的过程中,你的任何一个缺点都会伴随每一次的故障而被无限放大,被很多同事视为毫无战斗力,让你自己都开始怀疑自己,鄙视自己。

你需要把自己修炼的和马龙一样,做一个六边形战士。

干这行,还要有一颗强大的心脏,在无数次自我怀疑中,你要坚挺自己的信念,不要怀疑自己的判断,丢失基本判断能力。

运维不仅仅是个智力活,还是个体力活。你是不是觉得白天DBA总是很闲?但是一到晚上,你们的活儿才刚刚开始。有索引重建/DG切换/数据库hang住了;有集群节点宕机,需要更换机器了,等等。

总之必须赶在天亮业务开始之前修复。为了工作,多少年轻的DBA都曾在高压现场,留下了人生中第一口鲜血。你也可以转向管理层,难不?难!

首先恭喜你,你选了一条可以通向公司高层的路。也许是 CTO,也许是CEO,迎娶白富美,走向人生巅峰指日可待。

通过做数据运行,数据产品,或者数据分析,你认识了全公司上上下下的大小头目,今天运营总监约你吃午饭,明天生产总监喊你下午茶。太阳底下没有新鲜事,他们的饭局都暗藏杀机,总之他们饭局上有意无意流露的一切需求,都希望你全部搞定。

你说你团队人手不够,公司不肯招人,跟他们有什么关系?你说你excel就能实现的功能,为什么非要整一套炫酷而无任何实用价值的可视化报表分析软件?他们觉得炫酷就对了。

你说你这个需求要时间,希望给你一个月,他们拍着你的肩膀说,“你可以的,要相信自己。俩天,顶多两天就能搞定!”

带着这么多需求回到你的办公室,看着满脸青春的这些小伙小姑娘们,刷着微博朋友圈,你好忍心让他们陪你加班到凌晨,还自费打滴滴么!

需求终于做出来了,这里数据改一下,那个版面太丑了,好吧,明天下班前我们再谈。终于赶在deadline之前做完了,“怎么样,我说你可以的吧,看好你哦。这样,我们昨天几个人会后碰了下,发现你原来的设计也挺好,只是稍微还要再改改;还有,数据需要增加导入导出功能…”

如此反反复复,来来回回的折腾,某天你突然感慨,与机器打交道,累,与人打交道,更累。此时,你会坚持自己的选择是对的吗。

在这些零零碎碎的项目锻炼中,你能否总结有效的规律,提高自己业务沟通的能力,掌握数据治理的策略,严格把控项目管理的进度,都成了你的必修课。

九、SQL 数据库必读书单


如果你选的是 DBA,除了各家数据库文档要通读之外,还需要补充云计算相关,现在云计算很火了,好像不了解一下就落伍了,谁让技术迭代这么快呢:


《数据库系统实现》
《云计算通俗讲义》
《让云落地:云计算服务模式》
《云计算架构技术与实践》


如果你选的是业务设计(无论是运营,产品,数据分析,尤其是数据分析师),那么这些书,肯定是要读一读的Kimball 的系列书:

《维度建模权威指南》
《数据仓库与商业智能宝典-成功设计、部署和维护 DW/BI 系统》

业务场景解决方案:

《计算广告》
《推荐系统实战》
《决战大数据》
《大数据之路-阿里巴巴大数据实践》
《企业IT架构转型之道》
《设计数据密集型应用》

大数据系列:《Hadoop 权威指南》
《Spark 权威指南》
《Hive 编程》
《Hive 实战》
《Spark 高级数据分析》
《Hadoop构建数据仓库实践》

以上就是本文全部内容了。不管从事什么工作,真心祝福各位都能找到适合自己的道路并一步一个脚印的走下去。


祝各位成功的一天早日到来。
全文完

聚焦技术与人文,分享干货,共同成长
更多内容请关注“数据与人”

为您推荐

发表评论

您的电子邮箱地址不会被公开。

1条评论