不会写复杂的SQL,该怎么学习?

3个月前 (02-05) 0 点赞 0 收藏 0 评论 4 已阅读

慎入!!!我这篇是SQL小白学习经验贴,经常有高手乱入,然后说我写的太简单了,但高手你可能不知道,我作为一个曾经的小白多么的痛苦~~~
所以我还是坚持用小白的角度来说话,关心的问题也是小白经常出现的一些问题。就比如:

明天就要面试了或者下午就要用SQL取一个数,我是小白怎么能快速入门?小白学习SQL应该安装什么数据库?用什么资料来练习?哪本书最适合小白入门SQL,你有没有pdf?还有哪些SQL学习资料一起推荐过来。文科生(一点计算机基础也没有)适合什么样的SQL学习路径?我怕学不会我想入门数据分析,大数据库,听说要从SQL开始学习?完整的学习路径是什么?我自学SQL过程中总是遇到SQL报错,自己又不会解决,怎么办?我简单SQL还好,就是一遇到复杂SQL就看不懂,也不会写,怎么破?

先别着急,这些问题我都遇到过,也都走过弯路,回头看起来,有得有失吧。我尽量写的细一些,让大家少走弯路。
Part-1: 怎么快速学习?有什么资料?自己安装软件吗?
如果你只有半天到一天的时间,能不能学会SQL呢?千万不要放弃,这个时候再去看书,刷题或者下载软件其实都来不及了,唯一的办法就是把SQL语法
再彻彻底底的过一遍,SQL语法经过我的总结,其实就分为 基础查询,统计排序,复杂查询,函数,联表,建表,新增变更这几个部分。

我把每个部分的关键信息和最容易出错的地方都总结起来了,比如,SQL基础查询,总结起来就是下面的脑图:

其他部分我就不一一展开了,全部汇总变成一个 《一天学会SQL语法》的图(因为图片比较大可能看不清,可以直接点击下面的脑图
网页链接哦~~)

《一天学会SQL语法》网页版:https://www.mubucm.com/doc/6M8yHBsz9lY
因为有紧急需求的朋友实在太多了,所以我总结了这个语法图,结果效果还可以,真有紧急情况的朋友可以下载到手机里,
再花半天时间不能说拿满分吧,拿个七,八十分问题不大。当然,考过试的朋友都有一个感觉,最后复习1,2天赶出来的成绩,
往往也是1,2天就忘干净了。
下面我就说说真正从0开始学会SQL大概要花多少时间,这个过程呢我也走过一些弯路,现在看起来,如果不走弯路,按照我总结
的学习路径,大概7-10天能做到SQL的入门和实战能力了。相信大家都看过各种各样的SQL学习资料,最经常会出现的增,删,改,查
这四个字,对吧!一开始我也以为SQL分为 增,删,改,查;所以就打算分别花25%的时间学习这4个部分。

后来幸好碰到一个老鸟提醒我,说在实际工作中,绝大部分SQL是查询SQL,也就是SELECT语句,小白一开始从简单的查询学起是
最快的,如果学会了查询,后面的自然而然就容易了,除了这个学习顺序,现在网络上的学习资料也特别多,有时候,小白容易被搞晕。
我分别从 书籍,在线教程,数据库安装这3个方便给大家做个参考
1,书籍
小白推荐《SQL必知必会》《Mysql必知必会》这两本书,pdf可以单独找我哦 (jingedata2)。不过,光看书非常的枯燥,我建议
的学习方法是把书籍作为一个参考的手册,需要时可以翻一翻。如果按照书里的顺序学习的话,就需要自己安装数据库环境,把知识点
过一遍。

2,数据库安装
一开始我也是听说了一堆的数据库,什么Mysql,SQLserver,Oracle,也曾尝试着去安装,但是装完之后也彻底不知道安装到
哪里去了,后来经过一个老鸟的提醒,才知道 数据库环境安装,导入数据等操作,其实在SQL入门里是最难的部分,你一开始就去
触碰最难得,难怪会被卡住,所以建议0基础小白的话,先不要上来就安装数据库,而是先用一些在线学习的环境先把SQL搞熟悉
之后再自己安装环境好一些。
如果你需要自己安装软件环境,我建议先搞清楚SQL和数据库的关系,我把它画成下面的图片了:

这是一个【人 - SQL -数据库 - 运行环境】4者之间的关系图,我觉得画的挺好的,一开始我也很模糊,经过一个阶段的学习后,
才明白这个逻辑关系,对很多小白来说,这个关系图还是能说明出一些信息的。比如:
2-1.不管数据库是 Mysql SqlServer还是Oracle,其实SQL标准基础是一样,所以如果是小白就学SQL基础就可以了,不用纠结
是哪个数据库。
2-2 SQL其实是数据库交互语言,什么意思呢,你把数据库想成一个人的话,SQL其实就是它听的懂的话,所以小白特别需要注意,
就想你学一门外语一样,不要用咱们人类的语言习惯去写SQL,而要适用机器的习惯去写SQL
2-3。 人(数据分析人员,数据管理员)其实可以看做是一个翻译者,也就是比如说老板要取一个数,他自己不懂SQL,所以需要你
帮他和数据库打交道
2-4. 数据库其实是一个软件,是管理数据的软件,而软件就一定要安装,运行到计算机上,比如 云主机,你的电脑,公司的服务器等
等。
我想有了上面的认知,你再去安装数据库,再去学习SQL,应该就会清晰很多了。需要数据库安装包的朋友可以直接找我:(jingedata2)
还有一份数据库安装和练习用的代码库给你。

3,在线学习
现在说一下我最建议的入门学习方法,就是用在线题库的方法去入门(0基础比较友好)
比如 w3school , http://xuesql.cn (自学SQL网),牛客网 ,sqlzoon等等,其实在线学习练习平台非常非常多,我不建议一股脑一起学习,
比较好的方法是搞清楚这些平台的特点,然后分别用起来。
3-1 首先不建议一上来就学习sqlzoon,原因很简单:下面是它的截图,原因就是英文的

3-2 0基础入门可以先从 自学SQL网(http://xuesql.cn)开始,为什么这么说呢
网址 http://xuesql.cn
看下截图: 这个网站有几个特点,1,自带教程同时配练习 2,有入门视频

我们都知道0基础入门,最重要是练习,反复练习,这个网站提供的练习正好是从0基础开始一步步提升难度,还有一点最主要,
自学SQL网提供了一个语法手册,就一页A4纸大写,这个写SQL查询起来非常方便,截一个图:

写什么条件就查什么表格,比看书或去搜索要强多了,比较适合小白的。
3-3 最后,有一定基础了可以看一看牛客网,这里面很多题适合有一定基础的朋友。
w3school作为一个参考手册比较好,练习这一块不是特别建议。
最后,如果学习想要一定的社群或老鸟帮助其实也很简单,可以加我拉你 (jingedata2)

Part-2:0基础入门SQL到实战,数据分析,大数据学习路径的问题?
其实SQL的入门到实战,只是你进一步学习数据分析,数据开发,大数据,AI算法的一个基础,当然我这里针对的对象是0基础的小白而言。
为什么这么说,因为SQL也可以认为是一门简单的编程语言,试想一下,如果你连最简单的编程语言都还没搞清,怎么去学习Python,数据分析
怎么去数据开发
对0基础的小白而言,SQL就是一块最好的敲门砖了。我放一个大牛总结的数据分析知识路线图:

请勿被这张图上的知识点吓到。即使是一个小白,在学习了约两个月后,也完全可以成为一名合格的数据行业从业者。虽然有很多知识要学习,但我们仍然需要按照顺序进行学习。

如果您需要更详细的学习路径,请直接打开以下网页,其中已经详细介绍了学习的步骤和路径:

数据分析学习路径: https://mubu.com/doc/26Oa6b7LypI
Part-3:自学SQL老是卡壳,遇到错误不会解决,以及实际场景不会写SQL的问题?
”以前我一遇到SQL出错,我就难受,愤怒,现在我一遇到SQL出错就兴奋,感觉又要成长了!!“
”其实SQL实战能力,就是一个接着一个错误堆出来的,没有错误就没有能力!!!“
我相信,如果SQL学习到一定程度的朋友,都会对我这两个感觉发出100%的认同。为什么SQL出错在你看来是如临大敌,在我看起来是
成长机会呢?我是怎么发生这个转变的,先给大家贴一个老鸟的一段话:
第一次看到这句话的时候,我也非常反感,为什么我SQL看着答案都会写,自己就不会,难道我没学会吗?后来在老鸟的帮助下,我静下心
来,真正的去认识 ”调试” 这两个字,才一点点的爱上出错,爱上错误给我的知识。
大家都见到过非常复杂的SQL,比如:

当然,刚入门的人是很难一下开懂整个语句,那么专家呢?我一开以为专家肯定可以一眼看穿,后来还是老鸟纠正了我这个认知,
其实即使是专家,遇到一个sql的时候也无法一眼看穿。那既然这样,怎么办?只能慢慢拆解,慢慢 分析了。
其实会 和 不会之间的差别就是这个简单的 拆分,分析能力,或者高手经常说的 “调试”
比如,我写了下面这样的一个SQL错误:
SELECT ID,year FROM movies where id=1;

这个sql看起来没问题,但是运行就是出错,怎么办?不要试图一眼看穿,在你还是入门的时候,那么调试的意思无非就是:
问:
3-1 是From 这一段错误吗?怎么检查?
3-2 是 where条件错吗?怎么检查?
3-3 是select错误吗?怎么检查?
其实就是这么简单,比如对于问题3-3,我们可以修改一下啊,修改为:
SELECT * FROM movies where id=1;

我把select直接改成*,我看你还错不错?
这时候,无非就两个结果
3-3-1 没有错误,说明select原来有错
3-3-2 有错误,说明可能是后面错
如此反复进行,很快你就会发现,错误出在 select这一段的逗号写成中文了
这样一套操作下来,我请你问你,你以后还敢写中文逗号吗? 一次就学到了吧。如果你绕开这个问题呢,你下次还一样出错。
当然这样的例子还很多很多,如果你是从0开始入门SQL的话,可以看一下下面的我的详细学习笔记,里面写了很多这种
细致的问题,你也可以按我的学习步骤一步步进行。
最后
附送一个我的SQL自学笔记(超详细),按照我这个路线,90%都能成功,单独写了文章,我把链接放到下面,大家自取啊:
DAY 1: 自学SQL第一天
DAY 2: xxx
DAY 3: xxx
DAY 4: xxx
DAY 5: xxx

谢谢大家。


不会写复杂的SQL,该怎么学习?

本文收录在
0评论

登录

忘记密码 ?

切换登录

注册