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

相关文章
|
1月前
|
SQL 存储 缓存
SQL的原理
【5月更文挑战第21天】SQL的原理
28 1
|
10月前
|
SQL 存储 关系型数据库
原理和SQL
事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。
75 0
|
SQL 存储 关系型数据库
MySQL基础概念和SQL(1)
1.概念 1.1.什么是MySQL 开源、轻量级的一款关系型数据库,在业内有着广泛应用。 1.2.关系型数据库、非关系型数据库 按照组织数据的方式进行分类,数据库可以分为关系型、非关系型两种。两者各自的特点如下
105 0
MySQL基础概念和SQL(1)
|
11月前
|
SQL 存储 运维
|
11月前
|
SQL 前端开发 数据库
案例02-sql语句优化
案例02-sql语句优化
|
SQL 分布式计算 Oracle
【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事
复合索引的字段顺序,会影响查询速度,创建复合索引做SQL优化的一般原则是,如果两个字段在WHERE子句中使用频率相同,则将最具选择性的字段排在最前面,以下是分析结果: 原SQL进行了两次全表扫描,优化后的SQL减少一次全表扫描,提高了查询效率。cusomer和customer_detail两个表的cust_id字段经常出现在where子句中,
【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事
|
SQL 机器学习/深度学习 算法
如何使用 SQL 对数据进行分析?
通过 SQL 完成数据分析、机器学习还是推荐使用到 Python,因为这是 Python 所擅长的。通过今天的例子我们应该能看到采用 SQL 作为数据查询和分析的入口是一种数据全栈的思路,对于数据开发人员来说降低了数据分析的技术门槛。相信在当今的 DT 时代,我们的业务增长会越来越依靠于 SQL 引擎 + AI 引擎。
954 1
如何使用 SQL 对数据进行分析?
|
SQL 数据库 数据安全/隐私保护
经典SQL语句大全之数据开发(一)
经典SQL语句大全之数据开发(一)
130 0
|
存储 SQL 数据库
经典SQL语句大全之数据开发(二)
经典SQL语句大全之数据开发(二)
111 0
|
SQL 关系型数据库 数据库
经典SQL语句大全之基础
经典SQL语句大全之基础
113 0