这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基础指南,掌握了这些基础语法,能帮助你处理数据时指数级提升效率。

相关文章
|
3月前
|
SQL
SQL开发问题之使用distmapjoin的问题如何解决
SQL开发问题之使用distmapjoin的问题如何解决
|
5月前
|
SQL 存储 缓存
SQL的原理
【5月更文挑战第21天】SQL的原理
58 1
|
5月前
|
SQL XML Java
整理几个常用的sql和其他代码
整理几个常用的sql和其他代码
|
SQL 存储 关系型数据库
原理和SQL
事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。
88 0
|
SQL 存储 关系型数据库
MySQL基础概念和SQL(1)
1.概念 1.1.什么是MySQL 开源、轻量级的一款关系型数据库,在业内有着广泛应用。 1.2.关系型数据库、非关系型数据库 按照组织数据的方式进行分类,数据库可以分为关系型、非关系型两种。两者各自的特点如下
119 0
MySQL基础概念和SQL(1)
|
SQL
SQL书部分知识点总结
SQL书部分知识点总结
48 0
|
SQL 分布式计算 Oracle
【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事
复合索引的字段顺序,会影响查询速度,创建复合索引做SQL优化的一般原则是,如果两个字段在WHERE子句中使用频率相同,则将最具选择性的字段排在最前面,以下是分析结果: 原SQL进行了两次全表扫描,优化后的SQL减少一次全表扫描,提高了查询效率。cusomer和customer_detail两个表的cust_id字段经常出现在where子句中,
【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事
|
SQL 存储 数据安全/隐私保护
推荐几个学SQL的好地方
推荐几个学SQL的好地方
推荐几个学SQL的好地方
|
SQL 数据库 数据安全/隐私保护
经典SQL语句大全之数据开发(一)
经典SQL语句大全之数据开发(一)
151 0
|
SQL
SQL子查询优化,看这一篇就够了
子查询(Subquery)的优化一直以来都是 SQL 查询优化中的难点之一。关联子查询的基本执行方式类似于 Nested-Loop,但是这种执行方式的效率常常低到难以忍受。
3809 0
下一篇
无影云桌面