4.1数据库及工具安装
提前声明
一、连接课程数据库(必须完成)
二、汉化工具(非必须)
三、本地安装Mysql数据库(非必须)
四、Datagrip管理Mysq数据库(非必须)
4.2 SQL基础语句运行原理
一、做好准备
二、select+from
1.部分现有字段
1.1业务需求
1.2思考过程
1.3SQL里要如何实现?
2.全部现有字段
2.1业务需求
2.2思考过程
2.3SQL里要如何实现?
3.新增计算字段
3.1业务需求
3.2思考过程
3.3SQL里要如何实现?
三、select+from+where
筛选
1.业务需求
2.思考过程
3.SQL里要如何实现?
四、select+from+where+group by
1.分组去重
1.1业务需求
1.2思考过程
1.3SQL里要如何实现?
2.聚合运算
2.1业务需求
2.2思考过程
2.3SQL里要如何实现?
五、select+from+where+group by+having
聚合后筛选
1.业务需求
2.思考过程
SQL里要如何实现?
六、select+from+where+group by+having+order by+limit
对输入的结果排序,并限制返回的行数
1.业务需求
2.思考过程
3.SQL里要如何实现?
七、SQL单表查询运行原理
1.原理示意
2.准备阶段
3.计算阶段
八、select+from+join on+以上全部
1.连接不同表格的数据
SQL里要如何实现?
2.连接原理总结
九、SQL多表查询运行原理小知识
单表
多表
4.3子查询与窗口函数
一、子查询
二、窗口函数
各种窗口函数
1.根据排序分配序号【取最新数据、给排名】
row_number():根据分区内的排序,分配唯一且连续排名序号【用得最多】
dense_rank():根据分区内的排序,分配不唯一且连续排名序号
rank():根据分区内的排序,分配不唯一且不连续排名序号【高考排行】
2.根据排序取具体字段数值【取第一名或最新数值】
first_value(字段):根据分区内的排序,返回排在第一行的对应的字段数值(降序就可以去最后一行对应的数值)
nth_value(字段n):返回分区内的排序第n行的字段数值。如果第n行还未运行到,则返回NULL。n必须是正整数,例如1,2和3。
3.根据排序取上下几行的数值【求同环比】根据排序统计分布位置【算占比和分布】
lag(字段,n,默认值):返回分区内,本行前n行的字段数值,如果为空则填充默认值
lead(字段,n,默认值):返回分区内,本行后n行的字段数值,如果为空则填充默认值
4.根据排序统计分布位置【算占比和分布】
percent_rank():根据分区内的排序,从0开始统计当前行所在排序中的处于百分之多少的位置(不管指定值与分组序列中某值是否重复,均将此值视为序列一部分)
cume_dist():根据分区内的排序,从0之后开始统计当前行所在排序中的百分比分布位置(如果指定值与分组序列中某值重复,则将二值视为一个值处理)【更常用】
5.在排序内分组【分组、下发任务】
ntile(n):将排序内的行分为n组,根据分区内的排序,返回每一行是第几组
4.4SQL实战演练与刷题提升
一、SQL学习的3个阶段
第一阶段:理解运行原理,串联核心语句
第二阶段:积累函数用法,刷题巩固提升
第三阶段:拆解企业需求,复杂库表实战
强调一点:一定要学会自己看报错Debug!!!
二、数据架构基础知识
三、核心语句巩固提升
四、连接窗囗进阶深入
五、常见函数组合使用
六、大厂真题手撕提升