数据库实验报告(六)

实验报告(六)

1、实验目的

(1)    掌握关联查询的用法

(2)    掌握集合查询的区别和用法

(3)    掌握EXISTS的用法

2、实验预习与准备

(1)    了解ANY,ALL的用法

(2)    了解Max,Min,In与ANY,ALL的等价规则

(3)    了解子查询的使用限制

(4)    了解非关联子查询的特点

(5)    了解关联子查询的特点

3、实验内容及步骤

(1)       查询入学成绩比本班平均入学成绩高的学生学号,姓名,班级和入学成绩(使用关联子查询)

select s.sno,s.sname,s.clno,sc.score
  from student s,score sc
  where sc.score > (select avg(score) from score) and s.sno=sc.sno;

(2)       查询没有选修“010002”号课程的学生姓名(使用Exists)

 

SELECT DISTINCT s.sno, s.sname
FROM student s
WHERE NOT EXISTS (
  SELECT *
  FROM score sc
  WHERE sc.sno = s.sno AND sc.cno = '010002'
);

(3)  查询至少选修了姓名为“耿明”的学生所选修课程中一门课的学生的学号和姓名(使用Exists)

 

SELECT DISTINCT s.sno, s.sname
FROM student s
WHERE EXISTS (
  SELECT *
  FROM score sc
  WHERE sc.sno = s.sno
    AND EXISTS (
      SELECT *
      FROM score sc2
      WHERE sc2.sno = '耿明'
        AND sc2.cno = sc.cno
    )
);

(4) 查询教授过张丹丹老师教授过的所有班级的教师姓名(使用Exists)

 

SELECT DISTINCT t.tname
FROM teacher t
WHERE EXISTS (
  SELECT *
  FROM class cl
  WHERE EXISTS (
    SELECT *
    FROM course_class cc
    WHERE cc.tno = t.tno
      AND cc.clno = cl.clno
  )
  AND EXISTS (
    SELECT *
    FROM course_class cc2
    WHERE cc2.tno = '张丹丹'
      AND cc2.clno = cl.clno
  )
);

(5) 查询入学成绩最高的和最低的学生的学号、姓名和入学成绩(集合查询)

 

select sno,sname,point from student where point=(select MAX(point) from student) or point=(select MIN(point) from student);

(6)查询期末平均成绩在85分以上的学生学号、姓名和出生日期

 

SELECT s.sno, s.sname, s.birth
FROM student s
JOIN score sc ON s.sno = sc.sno
GROUP BY s.sno, s.sname, s.birth
HAVING AVG(sc.score) > 85;

(7)查询每门课程最高分的学生的学号

SELECT cno, MAX(score) AS max_score
FROM score
GROUP BY cno;

(8)查询既选修了“大学英语”又选修了“金融学”的学生学号(至少写出使用连接查询、嵌套查询两种方法。思考:如果还要查询学生姓名呢?

SELECT s.sno
FROM student s
JOIN score sc1 ON s.sno = sc1.sno
JOIN score sc2 ON s.sno = sc2.sno
JOIN course c1 ON sc1.cno = c1.cno
JOIN course c2 ON sc2.cno = c2.cno
WHERE c1.cname = '大学英语' AND c2.cname = '金融学';

(9)查询没有任何学生选修的课程编号和课程名称及学分(写出使用外连接, in+非关联子查询和exists+关联子查询三种方法)

-- Using LEFT JOIN
SELECT c.cno, c.cname, c.credit
FROM course c
LEFT JOIN score sc ON c.cno = sc.cno
WHERE sc.sno IS NULL;

-- Using IN with a subquery
SELECT cno, cname, credit
FROM course
WHERE cno NOT IN (
  SELECT cno
  FROM score
);

-- Using EXISTS with a subquery
SELECT c.cno, c.cname, c.credit
FROM course c
WHERE NOT EXISTS (
  SELECT *
  FROM score sc
  WHERE sc.cno = c.cno
);

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

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

相关文章

在docker中部署MySQL

目录 1、拉取最新的镜像 2、创建mysql容器实例 3、启动mysql实例 4、进入mysql 交互环境 5、登录MySQL数据库 6、尽情享用mysql 1、拉取最新的镜像 docker image pull mysql 2、创建mysql容器实例 第一次执行,需要先创建容器并启动(容器名是mys…

分享一个自用的Win11护眼主题(无需下载)

先放上几张效果图 设置方法 首先,把主题设置为高对比度主题——沙漠。 然后点击编辑,依次设置为以下值 背景:#1C5E75文本:#FFF5E3超链接:#6EFFA4非活动文本:#FFF5E3选定文本:#903909、#8EE3F0…

巾帼调查队开展实务调查技能,促全职妈妈联增收

2024年11月14日上午,由罗湖区妇联主办、罗湖区懿米阳光公益发展中心承办的“巾帼调查队—社区女性增值计划”项目第三期活动在罗湖区妇儿大厦六楼成功举办,30名阳光妈妈及全职妈妈参与了此次调查实务技巧培训。 在培训开始之前,巾帼调查队的创…

深度探讨丨关于工作量证明的常见误解

有一种基本误解认为,工作量证明机制在本质上是不可扩展的,并且会产生过度的能源耗费。 按照工作量证明区块链的最初设计,以及BSV区块链协会的推广,这一技术旨在实现可扩容性,同时确保高效能系统内的安全性和互操作性。…

基于IDEA进行Maven工程构建

Java全能学习面试指南:https://javaxiaobear.cn 1. 构建概念和构建过程 项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。 项目构建是软件开发过程中…

【智能家居】5、主流程设计以及外设框架编写

一、主流程设计 #include <stdio.h>int main(){//指令工厂初始化//控制外设工厂初始化//线程池return 0; } 1、工厂模式结构体定义 &#xff08;1&#xff09;指令工厂 inputCmd.h struct InputCmd{char cmdName[128];//指令名称char cmd[32];//指令int (*Init)(char …

解决margin-top导致的塌陷

什么是margin-top塌陷 若要使子元素距离父元素顶部有一定距离&#xff0c;如果只给子元素设置margin-top属性&#xff0c;结果发现父元素顶部出现位移&#xff0c;子元素相对父元素没位移&#xff0c;这就是margin-top导致的塌陷。 .fatherplus{width: 600px;height: 600px;b…

筋膜炎怎么治疗才能除根

筋膜炎的引起原因&#xff0c;常见的有以下几种&#xff1a; 1.职业因素。经常牵拉某些肌肉容易导致肌肉出现劳损&#xff0c;如司机、教师、运动员等&#xff0c;发生筋膜炎的几率会明显比正常人要高。 2.疾病因素。例如扁平足、糖尿病的人群&#xff0c;发生足底筋膜炎的几…

为了 Vue 组件测试,你需要为每个事件绑定的方法加上括号吗?

本文由华为云体验技术团队松塔同学分享 先说结论&#xff0c;当然不是&#xff01;Vue 组件测试&#xff0c;尤其是组件触发事件的测试&#xff0c;有成熟的示例。我们同样要关注测试的原则&#xff0c;例如将组件当成黑盒&#xff0c;不关心其内部实现&#xff0c;而只关心与其…

java集合,栈

只有栈是类 列表是个接口 栈是个类 队列 接口有双链表,优先队列(堆) add会报错 offer是一个满了不会报错 set集合 有两个类实现了这个接口

剑指Offer || 105.岛屿的最大面积

题目 给定一个由 0 和 1 组成的非空二维数组 grid &#xff0c;用来表示海洋岛屿地图。 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0&#xff08;代表水&#x…

div中一个div怎么在高度上居中,小div在大div的高度的中间

实现效果: 让这个去分享在高度上的居中 答案: 直接设置 margin:auto;

Draco Win10编译

1. 工具 CMake 3.2.8&#xff0c;Visual Studio 2019 2. 步骤 2.1 拷贝代码 git clone https://github.com/google/draco.gitgit clone https://github.com/google/draco.git 下载第三方依赖 git submodule sync git submodule update --init --recursive 2.2 CMake编译…

Linux Shell脚本的10个有用的“面试问题和解答”

Shell 是什么&#xff1f; 在 Linux 中&#xff0c;Shell 是一个应用程序 &#xff0c;它是用户与 Linux 内核沟通的桥梁。 它负责接收用户输入的命令&#xff0c;根据用户的输入找到其他程序并运行&#xff0c;Shell负责将应用层或者用户输入的命令传递给系统内核&#xff0…

《全程软件测试 第三版》拆书笔记

第一章 对软件测试的全面认识&#xff0c;测试不能是穷尽的 软件测试的作用&#xff1a; 1.产品质量评估&#xff1b;2.持续质量反馈&#xff1b;3.客户满意度提升&#xff1b;4.缺陷的预防 正反思维&#xff1a;正向思维&#xff08;广度&#xff0c;良好覆盖面&#xff09;逆…

利用IP地址查询优化保险理赔与业务风控的实用方法

随着数字化时代的到来&#xff0c;保险行业正逐渐采用先进的技术来改善理赔流程和强化业务风控。其中&#xff0c;通过IP地址查询成为一种有效的手段&#xff0c;为保险公司提供更精准的信息&#xff0c;以便更好地管理风险和提高服务效率。本文将探讨如何利用IP地址查询优化保…

AD教程 (十七)3D模型的创建和导入

AD教程 &#xff08;十七&#xff09;3D模型的创建和导入 对于设计者来讲&#xff0c;现在3DPCB比较流行&#xff0c;3DPCB&#xff0c;除了美观之外&#xff0c;做3D的最终的一个目的&#xff0c;是为了去核对结构&#xff0c;就是我们去做了这么一个PCB之后&#xff0c;如果说…

外汇天眼:什么是非农?非农数据对外汇市场的重要性!

非农数据在外汇市场中扮演着何等关键的角色&#xff1f; 美国非农数据&#xff0c;简称“非农”&#xff0c;具体指排除农业部门、个体户和非盈利机构雇员后的就业相关数据&#xff0c;是反映美国经济实际就业和整体经济状况的关键指标。该数据由美国劳工部劳动统计局每月发布…

GZ038 物联网应用开发赛题第9套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 &#xff08;第9套卷&#xff09; 工位号&#xff1a;______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具&#xff0c;操作安全规范&#xff1b; 2、竞赛过程中如有异议&#xff0c;可向现场考评…

深度学习实战60-基于深度学习模型搭建人脸识别系统,用最简单的方式实现人脸识别。

大家好,我是微学AI,今天给大家介绍一下深度学习实战60-基于深度学习模型搭建人脸识别系统,用最简单的方式实现人脸识别。本项目是一个基于人脸识别技术的应用项目。它旨在构建一个可靠、高效的人脸识别系统,以应用于安全、身份验证和人员管理等领域。项目的核心原理包括人脸…
最新文章