SQL实验 带函数查询和综合查询
一、实验目的
1.掌握Management Studio的使用。
2.掌握带函数查询和综合查询的使用。
二、实验内容及要求
1.统计年龄大于30岁的学生的人数。
--统计年龄大于30岁的学生的人数。SELECT COUNT(*) AS 人数FROM StudentWHERE (datepart(year,getdate())-datepart(year,Birthday))>30

2.统计数据结构有多少人80分或以上。
--统计数据结构有多少人80分或以上。SELECT COUNT(*) AS 人数FROM StudentGradeWHERE Course_id IN(SELECT Course_idFROM CourseWHERE Course_name='数据结构')AND Grade>80

3.查询“0203”课程的最高分的学生的学号。(请分别用TOP1和函数来进行查询,并分析它们的区别)
--查询“0203”课程的最高分的学生的学号。(请分别用TOP1和函数来进行查询,并分析它们的区别)--Top 1SELECT Top 1 Stu_idFROM StudentGradeWHERE Course_id='0203'--Max 函数SELECT Stu_idFROM StudentGradeWHERE Grade=(SELECT Max(Grade) FROM StudentGrade)AND Course_id='0203'

4.统计各系开设班级的数目(系名称、班级数目),并创建结果表。(需考虑没有班级的系)
--统计各系开设班级的数目(系名称、班级数目),并创建结果表。(需考虑没有班级的系)select Depar_name as 系名称,count(*) as 班级数目 into DeparNumberfrom Deparment LEFT JOIN Class ON Deparment.Depar_id=Class.Depar_idgroup by Depar_name

5.统计各门课程的选修人数,并按人数降序排列,找出排名前三位的课程。(TOP 3,但不能处理人数并列的情况。试考虑更好的方法。)
--统计各门课程的选修人数,并按人数降序排列,找出排名前三位的课程。(TOP 3,但不能处理人数并列的情况。试考虑更好的方法。)--Top 3SELECT Top 3 Course_id ,COUNT(*) AS 选修人数FROM StudentGradeGROUP BY Course_id ORDER BY 选修人数 DESC--优化方案
--内部查询首先在选课表中进行分组,按照课程编号计算每门课程的选修人数,并使用 RANK() 窗口函数为每个课程编号进行排名,从而获得对应的排名号。--外部查询该查询从内部查询的结果集(被命名为结果表)获取每门课程的编号和选修人数,并选择排名前三名的课程数据输出。SELECT Course_idFROM (SELECT Course_id,COUNT(*) AS 选修人数,RANK() OVER (ORDER BY COUNT(*) DESC) AS 名次FROM StudentGradeGROUP BY Course_id) AS 结果表WHERE 结果表.名次<=3

6.统计每科目的最高分、最低分,平均分、总分,并以中文列名显示。
--统计每科目的最高分、最低分,平均分、总分,并以中文列名显示。SELECTCourse.Course_name AS 学科,MAX (StudentGrade.Grade) AS 最高分,MIN (StudentGrade.Grade) AS 最低分,AVG (StudentGrade.Grade) AS 平均分,SUM (StudentGrade.Grade) AS 总分FROM Course JOIN StudentGrade ON Course.Course_id=StudentGrade.Course_idGROUP BY Course.Course_name

7.【选做】所有成绩都在70分以上的学生姓名(提示:使用子查询。需考虑未选课的学生)。
--【选做】所有成绩都在70分以上的学生姓名(提示:使用子查询。需考虑未选课的学生)。--这里使用了子查询来查找未选课的学生,并过滤掉成绩低于70分的学生。如果没有任何一门成绩低于70分,则该学生将被返回SELECT Student.Stu_nameFROM StudentWHERE NOT EXISTS (SELECT *FROM StudentGradeWHERE StudentGrade.Stu_id = Student.Stu_id AND StudentGrade.Grade < 70)

8.【选做】“数据库”课程得最高分的学生的学号、姓名和所在系。
--【选做】“数据库”课程得最高分的学生的学号、姓名和所在系。--材料无“数据库”将其改为“数据库原理”SELECT Top 1 Student.Stu_id,Student.Stu_name,Depar_nameFROM Student JOIN StudentGrade ON Student.Stu_id=StudentGrade.Stu_idJOIN Class ON Class.Class_id=Student.Class_idJOIN Deparment ON Class.Depar_id=Deparment.Depar_idJOIN Course ON StudentGrade.Course_id=Course.Course_idWHERE Course_name='数据库原理'GROUP BY Student.Stu_id,Student.Stu_name,Depar_nameORDER BY MAX(StudentGrade.Grade)DESC

9.【选做】至少选修了两门课及以上的学生姓名和性别。
--【选做】至少选修了两门课及以上的学生姓名和性别。
--内部子查询先对学生进行分组(GROUP),并求出(COUNT)每个学生选修不同科目的数量,再(HAVING)筛出符合条件的学生SELECT DISTINCT Stu_name ,Stu_sexFROM Student JOIN StudentGrade ON Student.Stu_id=StudentGrade.Stu_idJOIN Course ON StudentGrade.Course_id=Course.Course_idWHERE Student.Stu_id IN (SELECT StudentGrade.Stu_idFROM StudentGradeGROUP BY StudentGrade.Stu_idHAVING COUNT(DISTINCT StudentGrade.Course_id) >= 2)

相关文章:
SQL实验 带函数查询和综合查询
一、实验目的 1.掌握Management Studio的使用。 2.掌握带函数查询和综合查询的使用。 二、实验内容及要求 1.统计年龄大于30岁的学生的人数。 --统计年龄大于30岁的学生的人数。SELECT COUNT(*) AS 人数FROM StudentWHERE (datepart(yea…...
【前端每日基础】day34——HTTP和HTTPS
HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是互联网通信协议,用于在Web浏览器和Web服务器之间传输数据。以下是对HTTP和HTTPS的详细介绍: HTTP(Hypertext…...
go mongo 唯一索引创建
1. 登录mongo,创建数据库 mongosh -u $username -p $password use test 2. 查看集合索引 db.$collection_name.getIndexes() 为不存在的集合创建字段唯一索引 package mainimport ("context""fmt""log""time""go…...
微信小程序如何进行页面跳转
微信小程序中的页面跳转可以通过多种方式实现,以下是几种主要的跳转方式及其详细解释: wx.navigateTo 功能:保留当前页面,跳转到应用内的某个页面。特点: 可以在新页面使用wx.navigateBack返回原页面。每跳转一个新页…...
信息标记形式 (XML, JSON, YAML)
文章目录 🖥️介绍🖥️三种形式🏷️XML (Extensible Markup Language)🔖规范🔖注释🔖举例🔖其他 🏷️JSON (JavaScript Object Notation)🔖规范🔖注释&#x…...
C语言:学生成绩管理系统(含源代码)
一.功能 二.源代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NUM 100 typedef struct {char no[30];char name[10];char sex[10];char phone[20];float cyuyan;float computer;float datastruct; } *student, student1;typ…...
MySQL 导出导入的101个坑
最近接到一个业务自行运维的MySQL库迁移至标准化环境的需求,库不大,迁移方式也很简单,由开发用myqldump导出数据、DBA导入,但迁移过程坎坷十足,记录一下遇到的各项报错及后续迁移注意事项。 一、 概要 空间问题源与目…...
OpenCv之简单的人脸识别项目(人脸提取页面)
人脸识别 准备五、人脸提取页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件 3.定义单人脸提取脚本4.定义多人脸提取脚本5.创建一个退出对话框6.按钮设计6.1单人脸提取按钮6.2多人脸提取按钮6.3返回按钮 7.定义关键函数8…...
linux 内核映像差异介绍:vmlinux、zImage、zbImage、image、uImage等
一、背景 Linux内核是整个Linux操作系统的核心部分,它是一个负责与硬件直接交互的软件层,并且提供多种服务和接口,让用户程序能够方便地使用硬件资源。 当我们编译自定义内核时,可以将其生成为以下内核映像之一:vmli…...
【Linux-INPUT输入的子系统】
Linux-INPUT输入的子系统 ■ input 子系统简介■ input 驱动编写流程■ 事件类型 ■ ■ input 子系统简介 input 子系统就是管理输入的子系统, input 子系统分为 input 驱动层、 input 核心层、 input 事件处理层,最终给用户空间提供可访问的设备节点 …...
密码加密及验证
目录 为什么需要加密? 密码算法分类 对称密码算法 非对称密码算法 摘要算法 DigestUtils MD5在线解密工具原理 实现用户密码加密 代码实现 为什么需要加密? 在MySQL数据库中,我们常常需要对用户密码、身份证号、手机号码等敏感信息进…...
找出字符串中出现最多次数的字符以及出现的次数
str.charAt(i) 是JavaScript中获取字符串中特定位置字符的方法,表示获取当前的字符。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…...
如何看待央行买卖长期国债?
央行远比大家想象中的要渴求货币宽松。 引子 今年以来,有不少关于“央行买卖长期国债”的讨论,前些时候关注点在“买”,最近关注点在“卖”。 然而,市场上的讨论采用了十分粗糙和松散的“自然语言”,所以࿰…...
MATLAB算法实战应用案例精讲-【数模应用】Turf组合模型(附MATLAB、python和R语言代码实现)
目录 几个高频面试题目 如何以最小的成本覆盖到最大的消费群体? 应用场景 TURF举例...
android源码下载编译模拟器运行
安卓aosp源码下载,编译,模拟器运行 virtualbox7 安装ubuntu20.04,ubuntu22.04 编译android aosp 源码可以,但是模拟器跑不了,哪个版本都是要么黑屏,要么整个vbox虚拟机闪退。解决方案使用vmware17 ##拯救…...
Golang:Sirupsen/logrus是一个日志库
Sirupsen/logrus是一个日志库 文档 https://github.com/Sirupsen/logrus 安装 go get github.com/sirupsen/logrus代码示例 package mainimport ("github.com/sirupsen/logrus" )func main() {var log logrus.New()log.Trace("Something very low level.&…...
Android Studio插件开发 - Dora SDK的IDE插件
IDE插件开发简介 Android Studio是一种常用的集成开发环境(IDE),用于开发Android应用程序。它提供了许多功能和工具,可以帮助开发人员更轻松地构建和调试Android应用程序。 如果你想开发Android Studio插件,以下是一…...
【mybatis】缓存
一级缓存和二级缓存 一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从一级缓存中直接获取,不会从数据库重新查询。一级缓存默认是开启 使一级缓存失效的四种情况: 11.1…...
自定义类型:结构体类型
在学习完指针相关的知识后将进入到c语言中又一大重点——自定义类型,在之前学习操作符以及指针时我们对自定义类型中的结构体类型有了初步的了解,学习了结构体类型的创建以及如何创建结构体变量,还有结构体成员操作符的使用,现在我…...
C++对象移动
在某些情况下,对象拷贝后就立即被销毁了,这时利用新标准(C11)提供的对象移动而非拷贝将大幅提升性能. 1.右值引用 为了支持移动操作,c11新增了一种引用 - 右值引用(rvalue reference)。这种引用必须指向右值,使用&&声明。 右值引用只能引用临时变量或常量值. 右值引用…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
