数据分析师之——我的SQL零基础自学之路
source link: https://zhuanlan.zhihu.com/p/423022605
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
数据分析师之——我的SQL零基础自学之路
本文作者:高级数据分析师,九章算法班助教
从一个什么都不懂的小白,到现在的高级数据分析师,我大概用了一年的时间,这里想给大家分享一下我的自学经历,希望能有一些帮助。
平日里经常听很多同学反馈:不知道如何刷SQL相关的题目,总觉得题目太多无从下手,也有的同学想转岗,不知道怎么上手SQL,担心盲目刷题适得其反。
作为一名数据分析师,SQL是我最常用到的工具。经过一周的时间,我终于整理出了这份SQL完整教程,借此机会分享给大家,连相关的学习资料和刷题路径都给你整理好了。
这份指南在LintCode网站上同步免费放出,绝对硬核,一起来看下去吧 SQL入门到进阶学习指南
SQL常用语法
SELECT columns_name --查找一列或多列,多列之间用逗号隔开
FROM Table --目标表
WHERE condition --过滤条件
GROUP BY columns_name --按列值分组,可以1个或多个列
HAVING condition --分组后的筛选条件,HAVING与WHERE区别在于前者表达式中可包含函数
ORDER BY columns_name --按列排序
LIMIT start, row_count --对结果进行限定,start表示从哪行开始,row_count表示结果行数
Level 1:简单的 select / insert / update / delete 语句
算法练习题
查询课程名为 Artificial Intelligence 的课程信息
这里展开说说:使用 SELECT COLUMN 查询单个列
示例代码:
假设我们要查询课程表 courses
中所有课程的名称。
我们可以使用下面的 SQL 语句:
执行输出结果:
然后大家可以通过下面 SELECT COLUMN 实例——查询所有课程名称,去实操一下。
戳他实操 查询所有课程名称
Level 2:比较运算符 / 逻辑运算符 / 特殊条件 / ORDER BY 与 LIMIT
算法练习题
这里分享一下比较运算符的学习路径:
比较运算符用于比较运算,判断逻辑是否成立。比较运算符的使用方式如下:
WHERE 比较运算符的使用方式如下:
我们可以通过下面的实例来感受一下比较运算符的用法。
假如我们要查询学生人数超过 800 的所有课程信息,我们可以使用下面的 SQL 语句:
执行输出结果
戳他实操
LEVEL 3:算数函数 / 时间函数
算法练习题
以【使用 AVG() 函数求数值列的平均值】举例
语法:
我们可以通过下面的实例来感受一下 AVG() 函数 的用法。
假如我们想要计算课程表 courses
中学生上课人数 student_count
的平均值,我们可以使用下面的SQL语句:
执行输出结果
戳他实操 查询指定邮箱结尾的教师平均年龄
LEVEL 4:约束/多表连结
算法练习题
SQL 中约束有很多,这里我们先来学习 NOT NULL
下面的 SQL 强制 ID
列、 LastName
列以及 FirstName
列不接受 NULL 值:
示例代码
在一个已创建的表的 Age
字段中添加 NOT NULL 约束如下所示:
在一个已创建的表的 Age
字段中删除 NOT NULL 约束如下所示:
戳他实操 对课程表添加主键约束
LEVEL 5:分组查询/简单的子查询/子查询进阶
算法练习题
GROUP BY 子句
GROUP BY 函数就是 SQL 中用来实现分组的函数,其用于结合聚合函数,能根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。
语法:
接下来,我们将通过一个单表实例和一个多表实例帮助你加深对 GROUP BY 子句 的理解。
GROUP BY 单表实例
可以看到我们教师表中的教师来自不同的国家,现需要统计不同国家教师的人数,并将结果按照不同国籍教师人数从小到大排列,请编写相应的 SQL 语句实现。
使用 SQL 中子查询的方式如下:
执行输出结果:
目前更新到了L5,后续的事务/锁/乐观悲观锁/触发/视图/创建存储/循环 即将上线。
如果我的分享对你有用的话麻烦给我点个赞,让我有更新的动力!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK