sql-50练习题0-5

sql练习题0-5题

  • 前言
  • 数据库表结构介绍
    • 学生表
    • 课程表
    • 成绩表
    • 教师表
  • 0-1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数
  • 0-2查询"01"课程比"02"课程成绩小的学生的信息及课程分数
  • 0-3查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩
  • 0-4 查询平均成绩小于等于60分的同学的学生编号和学生姓名和平均成绩
  • 0-5 查询所有同学的学生编号,学生姓名,选课总数,所有课程的总成绩
    • 特别情况

前言

记录一下最近写过的sql的一些记录,从这篇开始每天更新5个题目,sql真的非常灵活,一个题目可能有很多很多种解法,我记录的只是我自己的一个解题思路,如果大家有更好的不同解法欢迎在评论区一起探讨
ps:有些题可能解法会重复,比如求大于,我们下一个题可能是求小于,大家如果第一遍没有做出来,看了我写的之后有了思路,可以试一下反面的解法。

数据库表结构介绍

学生表

在这里插入图片描述

课程表

在这里插入图片描述

成绩表

在这里插入图片描述

教师表

在这里插入图片描述

0-1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数

写sql之前先分析,需要用到的表以及函数
student,score两张表
简单分析一下这个sql,因为01课程和02课程在同一个字段,所以我的思路是采用自连接来处理

SELECTc.*, a.s_score score1,b.s_score score2
FROMscore a,score b,student c
WHEREa.c_id = '1'
AND b.c_id = '2'
AND a.s_id = b.s_id
AND c.s_id = b.s_id
AND a.s_score > b.s_score;

结果如下:

在这里插入图片描述

0-2查询"01"课程比"02"课程成绩小的学生的信息及课程分数

同样的思路,再写一遍,巩固一下

SELECTc.*, a.s_score score1,b.s_score score2
FROMscore a,score b,student c
WHEREa.c_id = '1'
AND b.c_id = '2'
AND a.s_id = b.s_id
AND c.s_id = b.s_id
AND a.s_score < b.s_score;

结果如下:
在这里插入图片描述

0-3查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩

需要用的表为student,score
题目需要查询到学生姓名,需要利用子查询
函数为age求平均值函数
需要分组

SELECTb.s_id,(SELECTs.s_nameFROMstudent sWHEREb.s_id = s.s_id) s_name,AVG(b.s_score) avg_score
FROMscore b
GROUP BYb.s_id
HAVINGAVG(b.s_score) >= 60

结果如下:
在这里插入图片描述

0-4 查询平均成绩小于等于60分的同学的学生编号和学生姓名和平均成绩

思路和上面一模一样

SELECTa.s_id,(SELECTs.s_nameFROMstudent sWHEREa.s_id = s.s_id),avg(a.s_score)
FROMscore a
GROUP BYa.s_id
HAVINGavg(a.s_score) <= 60;

结果如下
在这里插入图片描述

0-5 查询所有同学的学生编号,学生姓名,选课总数,所有课程的总成绩

从题目的意思可以看出来,我们需要两个表student,score
用到的函数为,count,sum
和上一个题的思路其实很像
ps:我个人比较喜欢子查询的方式,其实很多人比较喜欢用内连接,其实没有啥本质上区别,看个人习惯吧

子查询:
SELECTs.s_id,(SELECTa.s_nameFROMstudent aWHEREa.s_id=s.s_id),COUNT(s.c_id),SUM(s.s_score)
FROMscore s
GROUP BYs.s_id;
显式内连接:SELECTa.s_id,s.s_name,COUNT(a.c_id),SUM(a.s_score)
FROMscore a
INNER JOIN student s ON s.s_id = a.s_id
GROUP BYa.s_id;

结果如下:
在这里插入图片描述

特别情况

不知道有没有细心的小伙伴发现,我们这张成绩表中缺少id为8的同学的成绩,可能因为某些情况缺考了导致我们在上面的查询中也查不到她的信息,那么如果我们也需要将他的信息查询出来应该如何做呢?

student中有的数据而score中没有,可以使用外连接来做

SELECTs.s_id,s.s_name,COUNT(a.c_id) count_cid,IFNULL(SUM(a.s_score), 0) sum_score
FROMscore a
RIGHT JOIN student s ON s.s_id = a.s_id
GROUP BYa.s_id
ORDER BYs_id ASC;

结果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s 资源管理方式

k8s中资源管理方式可以划分为下面的几种&#xff1a;命令式对象管理、命令式对象配置、声明式对象配置。 命令式对象管理 命令式对象管理&#xff1a;直接使用命令的方式来操作k8s资源, 这种方式操作简单&#xff0c;但是无法审计和追踪。 kubectl run nginx-pod --imagengi…

C语言 每日一题 PTA 10.30 day8

1.高空坠球 皮球从某给定高度自由落下&#xff0c;触地后反弹到原高度的一半&#xff0c;再落下&#xff0c;再反弹&#xff0c;……&#xff0c;如此反复。问皮球在第n次落地时&#xff0c;在空中一共经过多少距离&#xff1f;第n次反弹的高度是多少&#xff1f; 输入格式 : …

Element 多个Form表单 同时验证

一、背景 在一个页面中需要实现两个Form表单&#xff0c;并在页面提交时需要对两个Form表单进行校验&#xff0c;两个表单都校验成功时才能提交 所用技术栈&#xff1a;Vue2Element UI 二、实现效果 三、多个表单验证 注意项&#xff1a; 两个form表单&#xff0c;每个表单上…

code编译时报错undefined reference to ...

问题描述&#xff1a; 我是在Windows10平台使用vscode编译代码时出现的这个问题&#xff0c;一共有三个文件&#xff0c;json.h、json.cpp&#xff0c;example.cpp。json.h负责函数的声明&#xff0c;json.cpp负责函数的实现&#xff0c;example.cpp负责测试代码的正确性。但是…

R语言与作物模型(以DSSAT模型为例)融合应用

随着基于过程的作物生长模型&#xff08;Process-based Crop Growth Simulation Model&#xff09;的发展&#xff0c;R语言在作物生长模型和数据分析、挖掘和可视化中发挥着越来越重要的作用。想要成为一名优秀的作物模型使用者与科研团队不可或缺的人才&#xff0c;除了掌握对…

秒级启动的集成测试框架

本文介绍了一种秒级启动的集成测试框架&#xff0c;使用该框架可以方便的修改和完善测试用例&#xff0c;使得测试用例成为测试过程的产物。 背景 传统的单元测试&#xff0c;测试的范围往往非常有限&#xff0c;常常覆盖的是一些工具类、静态方法或者较为底层纯粹的类实现&…

PostMan 之 Mock 接口测试

在测试的时候经常会碰到后端开发工程师的接口还没有开发完成&#xff0c;但是测试任务已经分配过来。没有接口怎么测试呢&#xff1f; 测试人员可以通过 mock server 自己去造一个接口来访问。mock server 可用于模拟真实的接口。收到请求时&#xff0c;它会根据配置返回对应的…

桶装水送水多门店水票押金押桶小程序开发

桶装水送水多门店水票押金押桶小程序开发 用户注册和登录首页展示各门店的桶装水品牌和价格用户可以选择门店和水品牌&#xff0c;并下单购买桶装水用户可以选择送水时间和地址用户可以查看自己的订单历史和当前订单状态用户可以申请退款或修改订单信息门店可以登录后台管理系…

C++二叉树剪枝

文章目录 C二叉树剪枝题目链接题目描述解题思路代码复杂度分析 C二叉树剪枝 题目链接 LCR 047. 二叉树剪枝 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个二叉树 根节点 root &#xff0c;树的每个节点的值要么是 0&#xff0c;要么是 1。请剪除该二叉树中所有节…

前端页面如何自适应--4种方法

前端页面有很多方法可以实现。这里我将介绍五种常用的方法&#xff0c;并提供相应的代码示例。 1. 使用CSS媒体查询 通过CSS媒体查询&#xff0c;可以根据不同的屏幕尺寸应用不同的样式。在Vue组件中&#xff0c;可以在样式部分使用媒体查询&#xff0c;使排版根据屏幕大小进…

sanic add_route 基本用法

代码片段 from sanic import Sanic from sanic.views import HTTPMethodView from sanic.response import text,json import urllibclass GeneralView(HTTPMethodView):def get(self, request):result urllib.parse.parse_qs(request.query_string)result[…

网络安全课题以及学术方向总结

文章目录 综述篇防护篇使用AI保护应用威胁情报黑客工具检测敏感数据检测恶意样本检测入侵检测域名安全检测业务安全检测Web安全检测Web安全之URL异常检测Web安全之SQLi检测Web安全之XSS检测Web安全之攻击多分类检测Web安全之WAF建设Web安全之Webshell检测Web安全之其他APT检测安…

golang调用智能合约,获取合约函数的返回值

如果不是只读取数据的合约函数&#xff0c;需要异步的执行&#xff0c;因此并不能直接获取到合约函数的返回值&#xff0c;需要等到交易执行完毕&#xff0c;得到确认后才能获取到合约函数的返回值。而且合约函数返回值一般是通过事件日志获取到的。 这里给出一个例子来展示我…

ORACLE运行的数据库突然连接报“无监听程序”

远程&#xff1a;用远程的数据库连接工具用localhost可以连接&#xff0c;用ip地址除127.0.0.1不可连接。 可能是日志文件满了&#xff0c;解决办法如下&#xff1a; 第一步&#xff1a;关闭数据库监听程序【任务管理器--》服务--》右键停止服务】 第二步&#xff1a;找到日志…

AR眼镜安卓主板,智能眼镜光机方案定制

AR智能眼镜是一项涉及广泛技术的创新产品&#xff0c;它需要考虑到光学、显示、功耗、散热、延迟、重量以及佩戴人体工学等多个方面的因素&#xff0c;每一个项目都是技术进步所需攻克的难题。 在本文中&#xff0c;我们将重点讨论AR眼镜的主板和光学方案。 首先是AR智能眼镜的…

【C++的OpenCV】第十四课-OpenCV基础强化(二):访问单通道Mat中的值之at()、ptr()、iscontinuous()

&#x1f389;&#x1f389;&#x1f389; 欢 迎 各 位 来 到 小 白 p i a o 的 学 习 空 间 &#xff01; \color{red}{欢迎各位来到小白piao的学习空间&#xff01;} 欢迎各位来到小白piao的学习空间&#xff01;&#x1f389;&#x1f389;&#x1f389; &#x1f496;&…

Netty复习:(2)IdleStateHandler的用法

一、handler定义&#xff1a; package handler;import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter;public class MyChatServerHandler3 extends ChannelInboundHandlerAdapter {Overridepublic void userEventTriggered(…

UTC时间戳与北京时间转换

文章目录 前言一、几个时间相关的概念二、场景三、验证方法四、源码五、运行结果六、资源自取 前言 在应用中用到了 UTC 时间戳与北京时间进行转换的需求&#xff0c;这里做一个记录&#xff0c;方便后面有需求时直接拿来用。 一、几个时间相关的概念 GMT 时间&#xff1a;Gr…

SpringBoot内置工具类之断言Assert的使用与部分解析

2023.10.29更新&#xff1a; 使用assert的不利之处&#xff1a; 1、assert关键字需要在运行时候显式开启才能生效&#xff0c;否则你的断言就没有任何意义。而现在主流的Java IDE工具默认都没有开启-ea断言检查功能。这就意味着你如果使用IDE工具编码&#xff0c;调试运行时候…

深度学习简史

一、说明 为了学习好深度学习&#xff0c;有必要知道深度学习的整个成长历史&#xff0c;可以说&#xff0c;深度学习的发展历程伴随整个人工智能的成长历程&#xff0c;本文将介绍这个历程的关键性历史节点。 二、深度学习的旅程 2.1 深度学习的当前认知 深度学习是机器学习的…