sql 查询上个月的数据_数据分析-SQL 进阶篇 多表查询

知识点

一、表的加法

Union:删除表中的重复值

union al:包含表中所有内容,包括重复值

5a4b7df90fc52f222973523cab8c1016.png

9be4030194bc12531137cd9f7d23a0cc.png

二、表的联结

联结:join

联结分为以下五种:

交叉联结(cross join)又称为笛卡尔积:将表中的每一行与另外表中的每一行联结在一起,结果的行数为两表行数的乘积。典型例子:扑克牌,实际业务应用较少,原因:a结果行数太多,需要花费大量运算成本和设备支持;b没有实际价值;交叉联结是其他联结的基础。

0bd7ddf89c04e9ebd5a56938053fb5e4.png

内联结(inner join):查找出同时存在于两组中的数据

bd00601210a59dd3f40d89ad6f37708d.png

bf3c26481c11137c937beb2c1a76c24e.png

748bfe4f5630e311e9608b087c05b9a7.png

dd335588306d8b214cdb379f7d8c29ad.png

左联结(left join):将左侧表中的数据取出来,将左侧表为主表,将左侧表中的数据全部取出来,右边的表中只选出和左边相同的学号的行。

901070a6ff7027df66aaf0ad27fe86be.png

0781c08a9ed3a4ba109e9f4c3773f618.png

7ad6a79e6ab337f7c8145051e035372d.png

3f8a4fcca8888ed18e05efba5aab123a.png

15af51526c39ec26be0b7187bfb95a1b.png

右联结(right join):会将右侧表中的数据全部取出来

35e35b3ac272ae9860795b070c76f1c7.png

a1b85b52b8b433b5be4d8bf8d914ba19.png

3f80ccee71ea06a822439e70cd5769bc.png

0886d687e32e3ab723282e9b344a8f0b.png

修改:left join 改为right join

全联结(full join):在SQL中无法应用

a51fff8f2e5ed7c9b3571fc86ce2d550.png

三、联结应用案例

1、 查询所有学生的学号、姓名、选课数、总成绩

dae28ef7b6f678b5ff3f95ba462d1d82.png

843e0adcf1e36a1424bf6be27a2ac919.png

b389b17e525127721546f69b783a82aa.png

2、 查询平均成绩大于85的所有学生的学号、姓名和平均成绩

0dc905407d2fe899b30b2cd54a4d7600.png

3ccfbcbc5742f2601576306ca9402049.png

6a0f2c86ec13cdac2b0063b6ed8d326d.png

712f7133f7013eb7b4a28163df7bd30f.png

3、 查询学生的选课情况:学号、姓名、课程号、课程名称

60d56c6859f4162ccd63c30bedbd022e.png

83eff1e67e04e0dd256ee8e87ca5b552.png

四、case表达式

作用:帮助解决复杂的查询问题,相当于进行一个条件判断的函数,用来判断每一行是否满足某个条件。

在何种情况下使用:多种情况需要判断时可以使用case表达式

注意:

1、 else子句可以省略不写,默认为空值,建议不省略;

2、 end 子句不可省略;

3、 case表达式看写在SQL任意子句中。

cf6f26b3ef3d8bfdf0b37a69de2f0190.png

e41b9ff9c6f9f39f7aae64adc9eb26eb.png

ad250300c7dedd11ee376e11208c8c6e.png

f935e58180a15deea96d542b6094af6e.png

f353d8f30c33756f10bec8241d2c0a24.png

07ea5bbdeadd1f076548499402c17fba.png

d0fc1ceeb3767989403320ef0442046c.png

练习题

1、 查询所有学生的学号、姓名、选课数、总成绩

62bedca45e64bf746db63daf22b686c5.png

2、 查询平均成绩大于85的所有学生的学号、姓名和平均成绩

dd1d1cff6c77a86a387ef42bd1807700.png

3、 查询学生的选课情况:学号、姓名、课程号、课程名称

e9b6ffabdc415cc4969eb2538ef0026a.png

4、 查询出每门课程的及格人数和不及格人数

e48dad11f81ade66ad268cb72f983422.png

5、 使用分段【100-85】,【85-70】,【70-60】,【<60】来统计各科出成绩,分别统计各分段人数:课程ID和课程名称

7257d37e9bb90f938f91b09ef788c4bf.png

6、SQLzoo练习

773b0a3dd966e72dc54beb8a63bc8cf8.png

0c350398ee823e6447239dd246d2fe4d.png

d58c01cc446982eb5e8e5f474b510e01.png

4a9fc8e20344a7b6ac1683aa3321449b.png

18ac926ea6bb7d7b87f80111dc0c8f49.png

575ad41b08c766524d8b6109edd2c63c.png

5ccbc2de93ac997cfa9ba523af86a7b6.png

988d9bbaa1490bf590d53e27ce96e548.png

f7964f4c2207a6df4e9ad83d0c33ac18.png

9e72906eba6cc9219af0b6667e165129.png

90df9b9b801f2e7b086514fb25074429.png

3d7558d0c558a6e2aae29f70937fa8b9.png

41a3bbc74f6f89642566bc6a74774044.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值