本文核心内容思维导图
一、学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构建数据仓库实践》以上就是本文全部内容了。不管从事什么工作,真心祝福各位都能找到适合自己的道路并一步一个脚印的走下去。
祝各位成功的一天早日到来。
全文完
聚焦技术与人文,分享干货,共同成长
更多内容请关注“数据与人”