这10张图,教你学会SQL!

简介: 这10张图,教你学会SQL!

大家好,我是Giant。


最近因为工作需要,我每周都要花一部分精力写SQL去Hive表中拉取数据,继而开展后续的分析、清洗与训练。由于平台数据规模庞大(单日增长数百G),业务相关的核心数据往往存放在上百张表中,我一般要关联2-5张表才能把需要的数据一次性取全。关联表格的过程涉及到SQL的join操作。


本文会先用一分钟让你明白 left join、right join和join的区别,随后用7张图帮你系统的掌握SQL。



先放一张汇总图,让你有个印象。下面结合实例各个击破。第一步,我们先来创建两张表,第一张表的名字为subject,第二张表的名字为score。


一、left join



left是左边的意思,join是连接的意思,连起来就是“左连接”,表1左连接表2。以左为主,表示以表1为主,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。如下:


select
   *
from
   subject
left join score 
on subject.id = score.id


结果集:



写SQL最好能有适当的换行和缩进,这样阅读效率会大幅提升。


二、right join



right是右边的意思,join是连接的意思,加起来就是“右连接”,表1右连接表2。以右为主,表示以表2为主,查出表2所有数据以及表1和表2有交集的数据:


select
   *
from
   subject
right join score 
on subject.id = score.id


结果集:



三、join



join 是 “inner join”的简写,表示内连接,查询结果是两个表有交集的部分,其余忽略。这个用的情况也是挺多的,如下:


select
   *
from
   subject
join score 
on subject.id = score.id


结果集:



四、7周快速掌握SQL基础指南



SQL在处理大量数据时有Excel无法比拟的优势。根据二八定律,其实只需掌握20%SQL的基础内容,就足以胜任80%的常见工作啦。


因此,我额外总结出了一份7周快速掌握SQL基础的指南,每周完成一张图里的内容就可以啦。


第一周,学习SQL语句的书写语法和规则。



第二周:基础查询。


利用最基础和最重要的select语句,对表中数据进行查询。



第三周:聚合与排序。


面对大量数据我们时常需要对其做汇总的分析。这部分内容就是说明各类汇总操作的方法。



第四周:数据更新。


理数据库时,我们可能需要的不仅仅是“读”数据,更需要“写”数据,也就是对表进行更新和修改。这一天的内容侧重对表的修改操作,并学习重要的数据库管理方法——事务的创建。



第五周:复杂查询。


这部分的学习内容如果掌握,你将拥有解决实际工作中很多问题的技能。学完需要多复习,并且灵活运用哦!



第六周:复杂查询。函数、谓词、case表达式。


如同所有编程语言一样,SQL也有好用的工具包——函数。利用函数,可以将很多复杂的问题在一行代码内解决完成。



这部分的学习内容如果掌握,你将拥有解决实际工作中很多问题的技能。学完需要多复习,并且灵活运用哦!


第七周:集合运算。


在有多张表的情况下,表和表之间的运算和联系就变得很重要,利用集合运算就可以将不同表中的数据整合起来。


经过开篇介绍的三种join方式,表的联结部分相信你已经很熟悉啦。



以上,就是我和你分享的SQL基础指南,掌握了这些基础语法,能帮助你处理数据时指数级提升效率。

相关文章
|
9月前
|
算法 UED
如何利用体育直播平台进行内容变现
随着互联网的发展,体育赛事的商业化日益多元化,成为推动体育行业发展的关键动力。熊猫比分体育赛事直播平台凭借精准的商业模式和运营策略,在行业中脱颖而出。其直播运营、私域变现和专家推荐等功能,不仅提升了用户体验,还实现了高效变现。通过熊猫比分提供的成熟源码,搭建和运营效率显著提高,助力平台在体育市场中占据一席之地。
327 13
|
9月前
|
存储 人工智能 API
(Elasticsearch)使用阿里云 infererence API 及 semantic text 进行向量搜索
本文我们展示了如何在Elasticsearch上使用阿里云 infererence API 及 semantic text 进行向量搜索。
163 10
|
9月前
|
弹性计算 运维 Serverless
超值选择:阿里云Elasticsearch Serverless在企业数据检索与分析中的高性能与灵活性
本文介绍了阿里云Elasticsearch Serverless服务的高性价比与高度弹性灵活性。
380 8
|
9月前
|
人工智能 搜索推荐 安全
智能家居:AI如何让我们的生活更便捷
智能家居:AI如何让我们的生活更便捷
455 7
|
12月前
|
算法 JavaScript 前端开发
Fitten Code:自动生成代码注释工具
【9月更文挑战第02天】
1434 7
|
JavaScript 测试技术 API
Vue 3 与 TypeScript:最佳实践详解
Vue 3 与 TypeScript:最佳实践详解
|
移动开发 小程序 前端开发
Uniapp Vue3 基础到实战 教学视频
Uniapp Vue3 基础到实战 教学视频
675 1
|
算法 C++
Morton码的计算
Morton码是对栅格格网进行编码的一种算法,在Google中搜索Morton,搜索结果第一位是Wikipedia的Z-order Curve,这是因为Morton码编码结果展现为一种Z形的填充曲线。下面简要说一下如何计算四进制和十进制的Morton码。
1190 0
|
SQL 数据挖掘 数据库
SQL数据分析实战:从导入到高级查询的完整指南
SQL数据分析实战:从导入到高级查询的完整指南
313 0
|
负载均衡 网络协议 算法
云计算中的负载均衡技术,确保资源的平衡分配
云计算中的负载均衡技术,确保资源的平衡分配
1235 0