当前位置:网站首页>初学者怎么快速学会SQL
初学者怎么快速学会SQL
2022-08-02 08:32:00 【热爱编程的小白白】
前言:
SQL可以说是在数据处理和分析领域最常用的程序语言了,有很多想从事这个数据业务但还没入门的同学都在问这个问题。但是,这个问题大概率是个无意义的问题。
且听我道来。
SQL简介
问这个问题的同学,要先问一下自己,学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语法要只是入门的话,那没什么难的,简单的SQL几乎可以当英语一样读。这里要学的是结构化数据的概念和运算,任何一本讲SQL的书都会讲这些内容,这是世界标准的知识,随便选一本来读就行了。
然后呢,去下载安装一个免费的集算器SPL(开源软件,搜索一下吧),再找几个行式Excel文件(这种数据多得很)来当作数据表,集算器可以让你对着Excel文件执行SQL,它支持绝大多数的基础SQL语法,这样就不需要折腾数据库的麻烦事了。没有 RDB 也敢揽 SQL 活的开源金刚钻 SPL 这里有关于集算器中对SQL支持的介绍,在数据文件上轻松使用 SQL 这里讲了如何利用集算器在文件上执行SQL。
集算器并不是为了提供SQL能力而设计,所以它的课程资料中也没有SQL的教程,这得你自己找了,不过,这玩意儿满大街都是,很容易找。而且,学习SQL更关键的在于理解结构化数据的相关知识,表和字段是什么、分组和连接又是什么意思、等等。这些内容,在集算器的图书 【程序设计】 前言及目录 中就都会讲到了。这些是比SQL语法更重要的学习内容。这本书中涉及的结构化数据概念和运算,从广度和深度都超过SQL资料,还结合有通俗实用的例子,用来学习结构化数据的知识会比大多数SQL教科书更合适。有了这些知识之后再来看SQL语法,那是分分钟就能掌握的事情了。
要提醒的是,SQL入门简单,精通却很难。这个语法体系并不合适处理复杂的查询,经常要写出N层嵌套甚至上百行的SQL。
SQL 为什么动不动就 N 百行以 K 计 这里有对这个问题的深入讨论和举例。
SPL资料
边栏推荐
- Jenkins--基础--6.2--Pipeline--语法--声明式
- XML简介
- QT web 开发 - 笔记 - 3
- (Note) AXIS ACASIS DT-3608 Dual-bay Hard Disk Array Box RAID Setting
- What attributes and methods are available for page directives in JSP pages?
- Redisson的看门狗机制
- High imitation [Huawei consumer business official website] and wonderful animation analysis: practice embedding JS code in low-code platform
- shell脚本
- R language plotly visualization: plotly visualizes the scatter plot of the actual value of the regression model and the predicted value of the regression, analyzes the prediction performance of the re
- 王学岗-编译出运行的文件
猜你喜欢

UVM信息服务机制

抓包工具Charles修改Response步骤

EPSANet: An Efficient Pyramid Split Attention Block on Convolutional Neural Network
![[OC学习笔记]weak的实现原理](/img/39/d6183deda2a530b78a0883e0f60153.png)
[OC学习笔记]weak的实现原理

postman下载安装汉化及使用

Redisson报异常attempt to unlock lock, not locked by current thread by node id解决方案

OneinStack多版本PHP共存

MySQL读写分离与主从延迟

(Note)阿克西斯ACASIS DT-3608双盘位硬盘阵列盒RAID设置

LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之一:解题思路
随机推荐
cas: 139504-50-0 Maytansine DM1|Mertansine|
MySQL读写分离与主从延迟
js引擎运行中的预解析(变量提升和函数提升)及相关实操案例
day_05_pickel 和 json
Flink 程序剖析
R语言plotly可视化:plotly可视化回归模型实际值和回归预测值的散点图分析回归模型的预测效能、一个好的模型大部分的散点在对角线附近(predicted vs actual)
三维体尺测量
Postman download localization of installation and use
pnpm: Introduction
OneNote 教程,如何在 OneNote 中创建更多空间?
自定义卡包效果实现
location对象,navigator对象,history对象学习
类和对象【下】
Biotin-C6-amine|N-biotinyl-1,6-hexanediamine|CAS: 65953-56-2
pycharm的基本使用教程(1)
What is the function of page directive contentPage/pageEncoding in JSP page?
Detailed explanation of calculation commands in shell (expr, (()), $[], let, bc )
R language plotly visualization: use the plotly visualization model to predict the true positive rate (True positive) TPR and false positive rate (False positive) FPR curve under different thresholds
抓包工具Charles修改Response步骤
Write a small game in C (three chess)