MySQL查询进阶

2023-10-27

多表查询、ALLSOME查询、聚集函数查询,分组查询,分组过滤查询

Student表格:
在这里插入图片描述
Dept(院系)学院号-学院名-院长:
在这里插入图片描述
Course表格:
在这里插入图片描述
Teacher表格,教师号-教师姓名-部门号-工资:
在这里插入图片描述
SC表格,学号-课程号-分数,反应学生和课程的对应关系:
在这里插入图片描述
多表查询
(1)求选修了001课程的学生的学号和姓名
需要了解学生和课程的对应关系,因此需要查询SC表;但SC表无法返回姓名,因此1、在SC表返回选修了001课程学生的学号 2、在Student表中返回学生的姓名。

Select `S#`,Sname From Student Where `S#` in (Select  `S#` From SC Where `C#` = 001);

在这里插入图片描述
(2)求既学过001课程又学过002课程的学生的学号
只需要返回学号,因此只查询SC表就够了;先找出选了001课程学生的学号,再看同样的学号是否也选修了002课程,如果是就选中。

Select `S#` From SC Where `C#`=002 AND `S#` in(Select `S#` From SC Where `C#`=001);

在这里插入图片描述
(3)列出上过ZhaoSan课程的学生姓名?
涉及到SC,Course,Teacher,Student四张表。将SC,Course,Teacher三张表做联合,设条件过滤,取出S#到Student中返回Sname

Select Sname From Student Where `S#` in (Select `S#` From SC, Teacher T, Course C Where T.Tname = 'ZhaoSan' AND C.`C#`=SC.`C#` AND C.`T#` = T.`T#`);

在这里插入图片描述

(4)找出工资最低的教师姓名

Select Tname From Teacher Where Salary<=All (Select Salary From Teacher );

在这里插入图片描述

ALL和SOME关键字
(1)找出001号课成绩不是最高的所有学生的学号
< 后接some,some表示最大值,>后接some,some表示最小值

Select `S#` From SC Where `C#`='001'  AND Score < some(Select Score From SC Where `C#` =001);

在这里插入图片描述

(2)找出所有课程都不及格的学生姓名
ALL关键字和some相反

 Select Sname From Student Where 60 > ALL (Select Score From SC Where `S#`=Student.`S#`);

聚集函数查询
在这里插入图片描述
求教师的工资总额?

Select Sum(Salary) From Teacher;

在这里插入图片描述
求计算机系教师的工资总额?
需要先去Dept表中查找CS的系号,然后去Teacher表中查找CS系的教师,求工资总和。

Select sum(Salary)  From Teacher T, Dept Where T.`D#` = Dept.`D#` and Dept.Dname='CS' ;

在这里插入图片描述
求数据库课程的平均成绩?
需要用到Course表格和SC表格,Course表格返回DataBase课程的编号,SC表格找出对应编号的课程成绩

 Select AVG(Score) From Course, SC Where Course.Cname='DataBase' and Course.`C#` = SC.`C#`;

分组查询
在这里插入图片描述
求每一个学生的平均成绩?

Select `S#`, AVG(Score) From SC Group by `S#`;

在这里插入图片描述
求每一门课程的平均成绩?
需要知道每门课程所有考生的成绩,因此需要Course和SC表格,Course表格返回课程号,SC表格返回

Select `C#`, AVG(Score) From SC Group by `C#`;

分组过滤查询
在这里插入图片描述
求不及格课程超过两门的同学的学号:
求有课程不及格同学的学号:

Select `S#` From SC Where Score < 60 Group by `S#` Having Count(*) > 2;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL查询进阶 的相关文章

  • Vue实例——百度搜索案例

    Vue实例 百度搜索案例 vue作为前端开发的渐进式框架 不仅比jQuery更加简洁 而且功能更为强大 接下来我将用vue js给大家介绍一个运用搜索框实现百度搜索的功能 开始之前我需要讲解一下百度搜索的数据传递流程 首先我们进百度搜索网站
  • Windows10下安装VMware16虚拟机

    前记 由于本人系统为Windows 10 家庭中文版 无法安装Linux子系统WSL 虽然网上也有强制安装的方法 但为保险起见 还是把之前的VMware虚拟机重新进行安装 并浅浅记录一下安装过程 一 VMware虚拟机的下载 下载 VMwa
  • qvariant是如何和稀泥的

    unionData char c uchar uc short s signedchar sc ushort us int i uint u long l ulong ul bool b double d float f qreal rea

随机推荐

  • 原地删除数组中的指定元素

    题目 给你一个数组 nums 和一个值 val 你需要 原地 移除所有数值等于 val 的元素 并返回移除后数组的新长度 示例 1 输入 nums 3 2 2 3 val 3 输出 2 nums 2 2 解释 函数应该返回新的长度 2 并且
  • 【deep_thoughts】48_快速复现PyTorch的Weight Normalization

    文章目录 理论 代码 全连接层 卷积层 视频链接 48 快速复现PyTorch的Weight Normalization 哔哩哔哩 bilibili 官方API torch nn utils weight norm 原始论文 Weight
  • declared implicitly

    declared implicitly 警告 h文件中未声明 如果还是不行 也可以把函数名改了试试
  • 虚拟交换机工作原理

    一 虚拟交换机概述 1 虚拟交换机简介 Switch Virtual Switch 指虚拟交换机或虚拟网络交换机 工作在二层数据网络 通过软件方式实现物理交换机的二层 和部分三层 网络功能 与传统物理交换机相比 虚拟交换机具备的优点 配置灵
  • 谷歌浏览器设置点击链接时打开新窗口

    根据谷歌浏览器的版本而定 我的是 步骤 1 右上角三个点的地方 选设置 2 外观 显示 主页 按钮选 打开新的标签页 OK设置完成
  • 详解大模型微调方法LoRA Adapter(内附实现代码)

    LoRA论文地址 LORA LOW RANK ADAPTATION OF LARGE LANGUAGE MODELS 1 背景介绍 以GPT 3 175B参数量为例 过大的参数量在Finetune的时候代价很大 Adapter适配器方法是进
  • STM32(六)库函数串口发送与接收实例(中断)

    STM系列文章目录 文章目录 STM系列文章目录 前言 一 串口配置步骤 二 实际编写 1 代码部分 重定向fputc函数 GPIO 前言 本篇用库函数写个简单的串口收发 用的是 STM32F103RCT6 开发板 部分来自正点原子 STM
  • rtsp实例及讲解

    rtsp是real time streaming protocol 按照我的理解为流媒体控制协议 协议双方的的编码类型和地址 以及对stream media的控制 play pause record 注意这里不要与RTCP协议搞混 rtcp
  • Mysql—修改用户密码(重置密码)

    Mysql 修改用户密码 重置密码 1 登录mysql 1 2 root localhost mysql uroot p123456 root localhost mysql hlocalhost uroot p123456 如果忘记密码
  • ASP.NET Core 运行原理剖析

    1 ASP NET Core 运行原理剖析 1 1 概述 1 2 文件配置 1 2 1 Starup文件配置 Configure ConfigureServices 1 2 2 appsetting json配置 1 3 处理管道 中间件
  • cesium绘制点、线、面

    cesium绘制点 线 面 地图地形上 点 let handler new Cesium ScreenSpaceEventHandler viewer scene canvas handler setInputAction function
  • 【超级无敌详细的黑马前端笔记!即时更新~】

    超级无敌详细的黑马前端笔记 即时更新 这个笔记 是我自己在同步学习黑马前端使用的 不可以商用哦 学习路径 基础概念铺垫 了解 认识网页 五大浏览器和渲染引擎 Web标准 HTML初体验 HTML的感知 HTML骨架结构 开发工具的使用 语法
  • 【08】STM32·HAL库开发-HAL库介绍

    目录 1 初识HAL库 了解 1 1CMSIS简介 1 2HAL库简介 2 STM32Cube固件包浅析 了解 2 1如何获取STM32Cube固件包 2 2STM32Cube固件包文件夹简介 2 3CMSIS文件夹关键文件 2 3 1CM
  • 增量式pid分析 及 参数整定

    函数功能 增量PI控制器 1 入口参数 编码器测量值 目标速度 2 入口参数 编码器位置 目标位置 返回 值 电机PWM 根据增量式离散PID公式 pwm Kp e k e k 1 Ki e k Kd e k 2e k 1 e k 2 e
  • 宝塔Linux面板—请使用正确的入口登录面板

    请使用正确的入口登录面板 错误原因 当前新安装的已经开启了安全入口登录 新装机器都会随机一个8位字符的安全入口名称 亦可以在面板设置处修改 如您没记录或不记得了 可以使用以下方式解决 解决方法 1 在SSH终端输入以下一种命令来解决 登录你
  • C# 中 KeyPress 、KeyDown 和KeyPress的区别

    1 KeyPress主要用来捕获数字 注意 包括Shift 数字的符号 字母 注意 包括大小写 小键盘等除了F1 12 SHIFT Alt Ctrl Insert Home PgUp Delete End PgDn ScrollLock P
  • 将时间写入数据库时,秒带小数点问题

    1 问题原因 new Date 时间秒带小数点 2 解决思路 将new Date 格式化为年月日时分秒字符串 在将该字符串转为Date 3 示例 Constant类 public final static SimpleDateFormat
  • VScode中文注释乱码问题解决

    VScode默认是用utf 8打开工程代码 C语言里的中文注释如果是Source insight之前gbk编码的注释可能会显示乱码 如何能让代码打开gbk编码的文件也不乱码 设置VScode如下 方法一 依次打开 文件 首选项 设置 然后搜
  • 电机转角控制算法

    时间周期是1 10ms可调 橙色和绿色代表期望和真实速度 红色代表期望角度 紫色代表电机转角 蓝色是减速机输出角度 在9700时刻角度已到达期望角度 速度由 200还未到0 所以算法上需要在要到达目标前某值就需要提前减速 这个值和当前真实速
  • MySQL查询进阶

    多表查询 ALLSOME查询 聚集函数查询 分组查询 分组过滤查询 Student表格 Dept 院系 学院号 学院名 院长 Course表格 Teacher表格 教师号 教师姓名 部门号 工资 SC表格 学号 课程号 分数 反应学生和课程