潍坊市论坛

注册

 

发新话题 回复该主题

初学者怎样快速学会SQL [复制链接]

1#
中科医院用爱心承担责任 http://m.39.net/news/a_5972929.html

有不少同学在问这个问题,但这个问题大概率是个无意义的问题,而这个帖子可能也回答不了这个问题。

问这个问题的同学,要先问一下自己,学SQL打算做什么?

希望学会后能写SQL语句做数据分析!

这是个很常见的目标,但事情却不是那么简单,因为现实中几乎不存在只要学会SQL语法就能做分析的场景。

SQL要在数据库里跑,那谁给你安装这个数据库?谁又负责把这些数据给放进去让你查询?

你查询出来的数据只是看看就完了么?还是要有段程序代码会根据查询结果做下一步的事情,特别常见的情况是要算个报表出来看看?

安装数据库、理解往数据写数据的机制、用程序代码访问数据库执行SQL、取出执行结果做下一步动作、...。如果这些事你都学会了,那SQL自然就会了,SQL本身语法的入门难度远远低于这些事情。如果这些事你还不会,那你只学会了SQL语法也没什么用武之地。而学会这些事本身并不是很简单,快速学会SQL就是个伪命题。这时候,应该改问:如何学会安装MySQL和导入数据进去、如何学会Java编程和用Java访问Oracle、...;学会SQL是学会这些东西的副产品,不值得单提出来。

作为初学者,还有种可能是各种忽悠的贴子看多了,老听说SQL是数据查询分析的基础技术,就会以为学会SQL就能做数据分析了,而数据分析师现在是个热门岗位。

SQL是数据查询分析的一种基础技术,这话大体不错,但对于初学者来讲,学会SQL就能做数据分析的指望可能是要落空的。原因就是如上所述,会有N多比SQL入门难度大得多的东西挡在你面前。SQL入门并不难,但不解决那些挡在SQL前面的障碍,你学会了SQL也没什么意义。如果你有本事把挡在SQL前面的障碍都搞定,那你根本不会再来问这个问题。

门外汉想做数据分析的话,SQL并不合适作为第一步,之前这个贴子《门外汉掌握数据分析处理技术的路线图》已经讲说过了。

会不会有这样的场景呢:数据库和里面的数据已经被专业人员准备好了,你只要写SQL就能查数据了,不用去管数据库安装维护以及程序访问的事。

通常来讲,数据库管理员不会有这么大的胆子给你一个刚入门的选手开放写SQL的权限来瞎折腾数据库,即使只给查询权限保证弄不坏数据,那也可能跑死数据库让大家都用不了。而如果把查询功能再限制的话,那些BI软件都有界面给搞定了,直接拖拽出来,根本用不着再去写SQL。当管理员敢放心给你开发写SQL权限时,还是那个话,你自己早就学会安装维护数据库甚至写程序访问数据库之类的难事了。所以,还是要把问题改一下。

根本的问题在于,SQL不像其它工具一样是个可以独立工作的东西,它的存在要依附于数据库甚至程序开发体系,这些被依附的东西的难度远远大于它本身的入门。

所以,SQL从来就不是数据分析门外汉要进门的第一步。

好吧,我就是兴趣大,想学,总行吧。

行!

那有没有办法让我只学SQL语法而避开数据库和程序语言那些麻烦事?

也有。

SQL语法要只是入门的话,那没什么难的,简单的SQL几乎可以当英语一样读。这里要学的是结构化数据的概念和运算,任何一本讲SQL的书都会讲这些内容,这是世界标准的知识,随便选一本来读就行了。

然后呢,去安装一个集算器,再自己找几个行式Excel文件(这种数据多得很)来当作数据表,集算器可以让你对着Excel文件执行SQL,它支持绝大多数的基础SQL语法,这样就不需要折腾数据库了。不过,集算器并不是为了提供SQL能力而设计,所以它的资料中也没有SQL教程。这有个贴子《在数据文件上轻松使用SQL》告诉你如何利用集算器在文件上执行SQL,但SQL本身的教程你得自己找。不过集算器的资料中有讲结构化数据知识的,这些知识有了之后,再来看SQL语法,那就是分分钟就能掌握的事情了。

结构化数据也没多难理解,因为这是我们最经常碰到的数据了,但计算机的东西关键是要多练,要反复实践搞熟练。

要提醒的是,SQL入门简单,精通却很难。这个语法体系并不合适处理复杂的查询,经常要写出N层嵌套甚至上百行的SQL。这个贴子中间有个SQL写的查询股票连涨天数的例子《[分类别]有序分组》(
分享 转发
TOP
发新话题 回复该主题