【SQL实验】高级查询(难点.三)含附加数据库操作

news/2024/11/8 7:36:47 标签: sql, 数据库, sqlserver

 完整代码在文章末尾【代码是自己的解答,并非标准答案,也有可能写错,文中可能会有不准确或待完善之处,恳请各位读者不吝批评指正,共同促进学习交流


将素材中的“学生管理”数据库附加到SQL SERVER中,完成以下操作:                              

附加数据库操作:

打开SSMS,在 对象资源管理器中,右击数据库,选择附加

在弹出的 附加数据库窗口中,点击 Add(添加)按钮

浏览到存放数据库文件(.mdf 和 .ldf 文件)的位置。

选择数据库.mdf 文件(主数据文件),然后点击 确定

在弹出的窗口中,你会看到数据库的相关信息(如 .mdf 文件的路径、日志文件等)。确认信息正确。如果数据库日志文件(.ldf)也没有出现,系统会自动识别并列出。确认无误后,点击 OK 进行附加。

数据库附加完成

个人因为版本问题附加还原不了,所以导入学生管理.xls文件

导入学生管理.xls文件操作:

右键点击“数据库”节点,选择“新建数据库”。

在弹出的窗口中,设置数据库名称为“学生管理”,点击“确定”完成创建

浏览选择文件作为数据库文件路径

 

 

导入过程不知道出来什么问题【这个我不知道】,但不要担心,这个步骤是没问题的。

把有问题的删除or重命名

 题目:

1.查询大于入学分数平均值的男生的人数

虽然有标红但不影响运行

--1.查询大于入学分数平均值的男生的人数。
SELECT COUNT(*) AS 男生人数
FROM 学生信息
WHERE 性别 = '男'
  AND 入学分数 > (SELECT AVG(入学分数) FROM 学生信息)

2.查询最受学生欢迎(选课人数最多)的课程号、课程名。

外部查询使用 WHERE 条件,筛选出与内部子查询结果相同的课程号,并返回该课程的号和名称

SELECT 课程号,课程名
FROM 课程信息
WHERE 课程信息.课程号 = (
    SELECT TOP 1 学生成绩.课程号
    FROM 学生成绩 
    GROUP BY 学生成绩.课程号
    ORDER BY COUNT(学生成绩.学号) DESC
)

3.查询学生考的最好的那门课程情况,显示学号、课程号、成绩(相关子查询)。

外部查询通过 WHERE a.成绩 = ... 匹配最高成绩的记录并返回该课程的学号、课程号和成绩信息。

SELECT 学号, 课程号, 成绩
FROM 学生成绩 a
WHERE a.成绩 = (SELECT MAX(b.成绩) FROM 学生成绩 b)

4.查询“王岩”同学具有相同籍贯的同学,显示姓名,籍贯(使用exists)。

EXISTS 子查询检查条件是否存在

s1.姓名 <> '王岩':排除“王岩”本人,只显示其他同学

SELECT s1.姓名, s1.籍贯
FROM 学生信息 AS s1
WHERE EXISTS (
    SELECT *
    FROM 学生信息 AS s2
    WHERE s1.籍贯 = s2.籍贯 
      AND s2.姓名 = '王岩'
      AND s1.姓名 <> '王岩'
)

5.查询选修了'1001'号课程的学生姓名(使用exists)。

WHERE 学生信息.学号 = 学生成绩.学号:将 学生信息学生成绩 表关联,以确定哪些学生选修了该课程

SELECT 姓名
FROM 学生信息 
WHERE EXISTS (
    SELECT *
    FROM 学生成绩
    WHERE 学生信息.学号 = 学生成绩.学号
      AND 学生成绩.课程号 = 1001
)


 完整代码:

--1.查询大于入学分数平均值的男生的人数。
SELECT COUNT(*) AS 男生人数
FROM 学生信息
WHERE 性别 = '男'
  AND 入学分数 > (SELECT AVG(入学分数) FROM 学生信息)

--2.查询最受学生欢迎(选课人数最多)的课程号、课程名
SELECT 课程号,课程名
FROM 课程信息
WHERE 课程信息.课程号=(SELECT TOP 1 学生成绩.课程号
						FROM 学生成绩 
						GROUP BY 学生成绩.课程号
						ORDER BY COUNT(学生成绩.学号) DESC)

--3.查询学生考的最好的那门课程情况,显示学号、课程号、成绩(相关子查询)。
SELECT  学号, 课程号, 成绩
FROM 学生成绩 a
WHERE a.成绩 = (SELECT MAX(b.成绩) FROM 学生成绩 b)

--4.查询“王岩”同学具有相同籍贯的同学,显示姓名,籍贯(使用exists)。
SELECT s1.姓名, s1.籍贯
FROM 学生信息 AS s1
WHERE EXISTS (
    SELECT *
    FROM 学生信息 AS s2
    WHERE s1.籍贯 = s2.籍贯 
		AND s2.姓名 = '王岩'
		AND s1.姓名 <> '王岩'
)

--5.查询选修了'1001'号课程的学生姓名(使用exists)。
SELECT 姓名
FROM 学生信息 
WHERE EXISTS (
    SELECT *
    FROM 学生成绩
    WHERE 学生信息.学号 = 学生成绩.学号
      AND 学生成绩.课程号 = 1001
)


http://www.niftyadmin.cn/n/5743519.html

相关文章

简单了解一下 TypeScript 的泛型

在 TypeScript (TS) 中&#xff0c;泛型是一个强大且灵活的工具&#xff0c;用于编写具有更高可复用性和类型安全性的代码。泛型允许我们在声明时将类型作为参数传入&#xff0c;使函数、接口和类能在不同的数据类型下复用&#xff0c;而无需重新编写逻辑。 1. 泛型的基本语法…

论文《基于柔顺控制的智能神经导航手术机器人系统设计》文献阅读分析报告

论文报告&#xff1a;基于卷积神经网络的手术机器人控制系统设计 摘要 本研究针对机器人辅助微创手术中定向障碍和缺乏导航信息的问题&#xff0c;设计了一种智能控制导航手术机器人系统。该系统采用可靠和安全的定位技术、7自由度机械臂以及避免关节角度限制的逆运动学控制策…

Android CCodec Codec2 (二十)C2Buffer与Codec2Buffer

在阅读Codec2框架代码时&#xff0c;我们可能会发现好几个名称中都带有“buffer”的类&#xff0c;如MediaCodecBuffer、ABuffer、CCodecBuffers、Codec2Buffer以及C2Buffer。它们分别是什么&#xff1f;各自承担着什么功能&#xff1f;它们之间有何联系&#xff1f;本文将围绕…

macos中安装和设置ninja

1、在安装ninja的过程中需要先安装re2c(github地址&#xff1a;https://github.com/skvadrik/re2c): git clone https://github.com/skvadrik/re2c.git&#xff08;也可直接下载最新的release压缩包&#xff0c;并解压。下载地址&#xff1a;https://github.com/skvadrik/re2c…

[论文阅读]Secure IP Address Allocation at Cloud Scale

Secure IP Address Allocation at Cloud Scale http://arxiv.org/abs/2210.14999 NDSS - Network and Distributed Systems Security Symposium (2025) 随着云计算和云基础设施的广泛应用&#xff0c;云服务提供商必须管理大量的网络资源&#xff0c;其中IP地址分配是重要的…

【Linux】Linux下查看cpu信息指令(top/mpstat/iostat/pidstat)说明

top命令 top(1) - Linux manual page (man7.org) top查看总的CPU利用率 us: 用户空间消耗的CPU资源占比&#xff0c;进程在用户态执行函数调用&#xff0c;编解码消耗的都是us sy: 内核空间消耗的CPU资源占比&#xff0c;进程调用系统调用达到内核后会增加sy的消耗 ni&…

浅谈语言模型推理框架 vLLM 0.6.0性能优化

在此前的大模型技术实践中&#xff0c;我们介绍了加速并行框架Accelerate、DeepSpeed及Megatron-LM。得益于这些框架的助力&#xff0c;大模型的分布式训练得以化繁为简。 然而&#xff0c;企业又该如何将训练完成的模型实际应用部署&#xff0c;持续优化服务吞吐性能&#xf…

salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗

在 Salesforce 中&#xff0c;标准的 Roll-Up Summary 字段仅支持在主对象和子对象之间的聚合统计&#xff0c;而邮件&#xff08;Email Message&#xff09;通常与 Case 是通过活动&#xff08;Activity&#xff09;或任务&#xff08;Task&#xff09;间接关联的&#xff0c;…