数据库的嵌套查询(子查询),分组查询和统计查询—学生选课

学生选课数据库中的表的结构参考学生选课数据库的定义和维护

1.嵌套查询

1.1查询选修了'数据库原理与应用'课程的学生学号和姓名

SELECT sno 学号, sname 姓名
FROM student
WHERE sno IN(SELECT sno
             FROM SC
             INNER JOIN Course c ON c.cno = SC.cno AND c.cname = '数据库原理与应用'
             )

1.2查询比'王华'同学年龄大的学生的学号和姓名

SELECT sno 学号, sname 姓名
FROM student
WHERE sage>(SELECT max(sage)
            FROM student
            WHERE sname='王华'
            )

1.3查询选修'数据库原理与应用'的成绩低于'张三'的学生的学号和成绩

SELECT sno 学号, grade 成绩
FROM SC
INNER JOIN Course c ON SC.cno = c.cno AND c.cname = '数据库原理与应用'
WHERE grade <(SELECT SC.grade
            FROM SC
            INNER JOIN Course c ON SC.cno = c.cno AND c.cname = '数据库原理与应用'
            INNER JOIN student s ON SC.sno = s.sno AND s.sname = '王华'
            )

1.4查询其他学员中比数计学院学生年龄都小的学生

SELECT *
FROM student
WHERE sdept != '数学与计算机科学学院' AND
      sage<(SELECT MIN(sage)
            FROM student
            WHERE sdept = '数学与计算机科学学院'
            )

1.5查询选修'数据库原理与应用'课程的学生姓名

SELECT sname
FROM student
WHERE sno IN(SELECT sno
            FROM SC
            INNER JOIN Course c ON SC.cno = c.cno AND c.cname = '数据库原理与应用'
            )

1.6查询选修了全部课程的学生姓名

SELECT sname 姓名
FROM student
WHERE sno IN(SELECT sno
             FROM SC
             GROUP BY SC.sno
             HAVING COUNT(*) =(SELECT COUNT(*)
                               FROM Course
                               )
             )

1.7查询至少选修了'2024010002'学生所选修课中一门课程的学生的学号和姓名

SELECT DISTINCT s.sno 学号, sname 姓名
FROM student s
INNER JOIN SC ON SC.sno = s.sno
WHERE SC.cno = ANY(SELECT cno
                FROM SC
                WHERE sno='2024010002'
                )

1.8查询至少选修了'2024010002'学生所选修课的全部课程的学生的学号和姓名

SELECT s.sno 学号, sname 姓名
FROM student s
WHERE NOT EXISTS(SELECT *
                FROM SC sc1
                WHERE sc1.sno='2024010002' AND
                      NOT EXISTS(SELECT *
                                 FROM SC sc2
                                 WHERE s.sno = sc2.sno AND
                                       sc2.cno = sc1.cno
                                 )
                )

1.9查询既选修了'数据结构'又选修了'数据库原理与应用'课程的学生姓名

SELECT sname 姓名
FROM student s
WHERE sno IN(SELECT sno
             FROM SC
             INNER JOIN Course c ON SC.cno = c.cno
             WHERE c.cname = '数据结构' AND
                   s.sno IN (SELECT sno
                             FROM SC
                             INNER JOIN Course c ON SC.cno = c.cno
                             WHERE c.cname = '数据库原理与应用'
                             ) 
             )

1.10查询选修了'数据结构'或选修了'数据库原理与应用'课程的学生学号

SELECT sno 学号
FROM student
WHERE sno IN(SELECT sno
             FROM SC
             INNER JOIN Course c ON SC.cno = c.cno
             WHERE c.cname = '数据结构' OR c.cname = '数据库原理与应用'
             )

1.11查询选修了'数据结构'而没有选修'数据库原理与应用'课程的学生学号

SELECT sname 姓名
FROM student s
WHERE sno IN(SELECT sno
             FROM SC
             INNER JOIN Course c ON SC.cno = c.cno
             WHERE c.cname = '数据结构' AND
                   s.sno NOT IN (SELECT sno
                             FROM SC
                             INNER JOIN Course c ON SC.cno = c.cno
                             WHERE c.cname = '数据库原理与应用'
                             ) 
             )

1.12查询全是男同学选修的课程号

SELECT cno 课程号
FROM Course
WHERE cno NOT IN(SELECT cno
             FROM SC
             INNER JOIN student s ON s.sno = SC.sno
             WHERE ssex = '女'
             )

2.分组查询和统计查询

2.1使用集合运算查询选修了'数据结构'或选修了'数据库原理与应用'课程的学生学号

SELECT sname 姓名
FROM student s
INNER JOIN SC ON SC.sno = s.sno
INNER JOIN Course c ON c.cno = SC.cno
WHERE c.cname = '数据结构'
UNION
SELECT sname 姓名
FROM student s
INNER JOIN SC ON SC.sno = s.sno
INNER JOIN Course c ON c.cno = SC.cno
WHERE c.cname = '数据库原理与应用'

2.2统计选修了课程的学生人数

SELECT COUNT(DISTINCT sno) 总人数
FROM sc

2.3查询选修成绩合格, 并且选课门次超过4门以上学生的学号和总成绩

SELECT sno, SUM(grade) 总成绩
FROM SC
GROUP BY sno
HAVING COUNT(*) > 4 AND MIN(grade) >= 60

2.4统计各院系的学生人数

SELECT sdept 院系, COUNT(*) 总人数
FROM student
GROUP BY sdept

2.5统计各年龄的学生人数

SELECT sage 年龄, COUNT(*) 总人数
FROM student
GROUP BY sage

2.6统计每个学生的选修课程数目和平均成绩

SELECT sno 学号, COUNT(sno) 选课数目, AVG(grade) 平均成绩
FROM SC
GROUP BY sno

2.7查询每门课程的详细信息及选修人数

SELECT c.*, COUNT(DISTINCT sno) 选课人数
FROM Course c
LEFT JOIN SC ON SC.cno = c.cno
GROUP BY c.cno, c.cname, c.ccredit, c.cpno

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习中的归一化:BN,LN,IN,GN的优缺点

目录 深度学习中归一化的作用常见归一化的优缺点 深度学习中归一化的作用 加速训练过程 归一化可以加速深度学习模型的训练过程。通过调整输入数据的尺度&#xff0c;归一化有助于改善优化算法的收敛速度。这是因为归一化后的数据具有相似的尺度&#xff0c;使得梯度下降等优化…

Redis - Zset 有序集合

前言 它保留了集合不能有重复成员的特点&#xff0c;但与集合不同的是&#xff0c;有序集合中的每个元素都有⼀个唯⼀的浮点类型的分数&#xff08;score&#xff09;与之关联&#xff0c;有序集合中的元素是可以维护有序性的&#xff0c;但这个有序不是⽤下标作为排序依据⽽是…

数据分析师 医学spss数据分析,游程检验(Run Test)是一种非参数性统计假设的检验方法,也称为“连贯检验”,医学统计学

游程检验&#xff08;Run Test&#xff09;是一种非参数性统计假设的检验方法&#xff0c;也称为“连贯检验”。它是基于样本标志表现排列所形成的游程&#xff08;即连续出现相同数值的序列&#xff09;的多少进行判断的检验方法。游程检验主要用于两个独立样本的比较和观测结…

TC3xx MTU概述(1)

目录 1.MTU基本功能 2.MBIST 3.小结 1.MTU基本功能 在TC3xx中&#xff0c;MTU(Memory Unit Test)被用来管理控制芯片内部各种RAM的测试、初始化和数据完整性检查。 既然MTU主要是管理和控制&#xff0c;那干活的想必另有他人。所以在该平台中&#xff0c;我们可以看到SRAM…

C++:哈希表和unordered系列容器的封装

一、unordered系列关联式容器的介绍 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到log2N&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好的查询是&…

Python语言在地球科学中地理、气象、气候变化、水文、生态、传感器等数据可视化到常见数据分析方法的使用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台&#xff08;x86和arm&#xff09;&#xff0c;Python简洁的语法和对动态输入的支持&#xff0c;再加上解释性语言的本质&…

深度学习之视觉特征提取器——AlexNet

AlexNet 参考资料&#xff1a; &#xff08;1&#xff09;ImageNet十年历任霸主之AlexNet - 知乎 (zhihu.com) &#xff08;2&#xff09;AlexNet - Wikipedia 引入 AlexNet在2012年以第一名在Top-1分类精度霸榜ImageNet&#xff0c;并超过第二名近10个百分点&#xff0c;…

On Hold 频发!又3本期刊被标记为On Hold ,大家谨慎投递!

【SciencePub学术】On Hold 频发&#xff01;小编在查阅资料的时候发现又有3本期刊被标记为On Hold 了&#xff0c;今天小编给大家详细介绍一下这3本期刊。 来源&#xff1a;科睿唯安官网 Results in Physics 1 期刊概况 【期刊简介】IF&#xff1a;5.3&#xff0c;JCR1区&am…

RockChip Android13 NFC SL6320移植

环境:RK3568 Android13 一:驱动移植 1、驱动 将SL6320驱动代码拷贝至kernel-5.10/drivers/misc/sl6320/ 特殊说明:勿将驱动代码放置于kernel-5.10/drivers/nfc/目录下,会导致sl6320驱动生成设备节点时因/dev/nfc节点以创建而加载失败。 2、DTS 本次硬件设计电路走I2C协…

获取京东商品详情,API返回值说明全攻略

京东商品详情API是开发者获取京东平台上商品详细信息的重要工具。通过调用API并解析返回的响应数据&#xff0c;您可以快速获取商品的各项属性&#xff0c;如商品ID、标题、价格、图片等。下面&#xff0c;我们将为您详细介绍京东商品详情API的返回值说明&#xff0c;帮助您更好…

Spring - 8 ( 10000 字 Spring 入门级教程 )

一&#xff1a; MyBatis 1.1 引入 MyBatis 我们学习 MySQL 数据库时&#xff0c;已经学习了 JDBC 来操作数据库, 但是 JDBC 操作太复杂了. 我们先来回顾⼀下 JDBC 的操作流程: 创建数据库连接池 DataSource通过 DataSource 获取数据库连接 Connection编写要执行带 ? 占位符…

三岁孩童被家养大型犬咬伤 额部撕脱伤达10公分

近期&#xff0c;一名被家养大型犬咬伤了面部的3岁小朋友&#xff0c;在被家人紧急送来西安国际医学中心医院&#xff0c;通过24小时急诊门诊简单救治后&#xff0c;转至整形外科&#xff0c;由主治医师李世龙为他实施了清创及缝合手术。 “患者额部撕脱伤面积约为10公分&…

什么是高级持续威胁(APT)

高级持续性威胁&#xff08;Advanced Persistent Threat&#xff0c;APT&#xff09;&#xff0c;又叫高级长期威胁&#xff0c;是一种复杂的、持续的网络攻击&#xff0c;包含三个要素&#xff1a;高级、长期、威胁。 【高级】是指执行APT攻击需要比传统攻击更高的定制程度和…

【教程】极简Python接入免费语音识别API

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;请不吝给个[点赞、收藏、关注]哦~ 安装库&#xff1a; pip install SpeechRecognition 使用方法&#xff1a; import speech_recognition as srr sr.Recognizer() harvard sr…

省公派出国|社科类普通高校教师限期内赴英国访学交流

在国外访问学者申请中&#xff0c;人文社科类相对难度更大&#xff0c;尤其是英语语言学&#xff0c;作为非母语研究并不被国外高校看重。经过努力&#xff0c;最终我们帮助Z老师申请到英国坎特伯雷基督教会大学的访学职位&#xff0c;并在限期内出国。 Z老师背景&#xff1a; …

如何在 Windows 11 上检查和显示 CPU 温度

1.为什么需要监控 CPU 温度&#xff1f; CPU 是您计算机的核心&#xff0c;是从后台运行整个节目的木偶大师&#xff0c;接收指令并处理保持整个 shindig 运行所需的处理能力。并且需要定期监测其内部温度&#xff0c;以确保节目不会着火。高于平均水平的热量总是会导致性能急…

jenkins常用插件之Filesystem Trigger

安装插件 Filesystem Trigger 项目配置 验证 根据上述配置&#xff0c;当1.txt文件发生变化时&#xff0c;jenkins每分钟会进行检测&#xff0c;检测到后即进行任务构建&#xff0c;后续的具体操作可自行配置

css响应式布局左、右上、右中布局

一、布局效果 二、布局代码 <div class"parent"><div class"left">菜单</div><div class"right"><div class"right-top">顶部导航</div><div class"right-content"></div>…

SpringBoot集成阿里云短信验证码服务

一&#xff1a;前言 最近在项目开发过程中&#xff0c;需要去写一个发送手机短信验证码的功能。在网上查了一下&#xff0c;有很多服务器可供选择&#xff0c;本文的话是基于阿里云服务的短信验证码功能实现。 关于注册和开通服务这些需要操作的&#xff0c;请各位小伙伴参考官…

Vue、React实现excel导出功能(三种实现方式保姆级讲解)

第一种&#xff1a;后端返回文件流&#xff0c;前端转换并导出&#xff08;常用&#xff0c;通常公司都是用这种方式&#xff09; 第二种&#xff1a;纯后端导出&#xff08;需要了解&#xff09; 第三种&#xff1a;纯前端导出&#xff08;不建议使用&#xff0c;数据处理放…