sql之查询语句案例

生成一个统计结果信息表
—生成的每个同学的总分信息表:学号、姓名、总分
代码演变:

SELECT S.stuNo,S.stuName  FROM Results R
INNER JOIN 
Students S
ON(R.stuno=S.stuNo)
WHERE R.score IS NOT NULL OR R.score!=0 

在这里插入图片描述

添加分组:

SELECT S.stuNo,S.stuName FROM Results R
INNER JOIN 
Students S
ON(R.stuno=S.stuNo)
WHERE R.score IS NOT NULL OR R.score!=0 
GROUP BY S.stuNo,S.stuName

将具有相同的stuNo和stuName数据的记录划分为一组

在这里插入图片描述
添加聚合函数:
–采用内连接:

SELECT S.stuNo,S.stuName,SUM(R.score) AS TotalScores  FROM Results R
INNER JOIN 
Students S
ON(R.stuno=S.stuNo)
WHERE R.score IS NOT NULL OR R.score!=0 
GROUP BY S.stuNo,S.stuName
ORDER BY TotalScores DESC

在这里插入图片描述
–采用外连接方式:
–右外连接:
起别名的两张方式:
–1.TotalScores=SUM(R.score)
–2.SUM(R.score) AS TotalScores

SELECT S.stuNo,S.stuName,SUM(R.score) AS TotalScores  FROM Results R
LEFT JOIN 
Students S
ON(R.stuno=S.stuNo)
WHERE R.score IS NOT NULL OR R.score!=0 
GROUP BY S.stuNo,S.stuName
ORDER BY TotalScores DESC

注意点:
**内连接:**完全匹配,不会产生NULL(但可能表中的字段本身就是NULL)

使用左/右外连接时,尽量:左外连接,左表是主键表。
右外连接,右表是主键表。
这时候查询出来的从表中的字段可能存在NULL值(没有匹配上,而不是字段本身就是NULL),所以需要判断一下(一般使用主键表的主键列进行判断,也不一定)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值