postgres sql 多表联合查询_SQL 多表查询

98beccf6ba2f83f0ab96cdc3999e0375.png

前期学的都是单张表中查询,这一课将开始学习从多张表查询。

1、表的加法

(1)定义:合并两个或多个的表,这些表的列名师一样的

(2)union 两张表联结并删除重复值

8301ec1775c9f491f4d30a0069608eb4.png

(3)union all 两张表 两张表联结不会删除重复值

7e6874ad0451cb6c7f63af8207307ad1.png

2、表的联结

(1)定义:表和表之间的关系在数据库里叫做联结(join),多表查找也是通过联结来实现的

9e4c2ca0ab45bccc008ef481c9bfafd1.png

(2)交叉联结(cross join)表中的每一行都与另一个表中的每一行联结在一起

(3)内联结(inner join)查找出同时存在两张表中的数据

(4)左联结(left join)

(5)右联结(right join)

3、联结应用案例

(1)如何用SQL 解决业务问题

1)翻译成大白话

2)写出分析思路

3)写出对应的sql语句

(2)练习

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

3fb10d2096ae30074807d248b0e01486.png

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

3bdc6b62ae233244b68aca30a706e78f.png

3)/*查询学生的选课情况:学号,姓名,课程号,课程名称*/

2094cb05231a7dee39579220f722e0a1.png

c2bb70b904f5dc8cb8e2e784ad302513.png

4、case表达式

(1)定义:当有多种情况需要条件判断的时候可以使用case表达式,只会返回一个值

(2)练习

1)/*查询每门课的及格人数和不及格人数*/

eda3284d37627a0b7a863ae33718ba60.png

或者

e1275d905e86fc2e7e65b36c7147be66.png

2)/*使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计:各分段人数,课程号和课程名称*/

01cde5ae48462e192506432752e35885.png

(2)应用注意事项

1)else可以不写,默认为空值,但在sql书写习惯上最好不省略;

2)最后的end必须写上,不能省略;

3)case表达式可以写在sql的任意子句中

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值