【数据库原理与实践】CS系的实验期末考题(20222023)

news2024/12/23 1:25:49

2022:

学校管理数据库涉及四个关联表结构:

学生表 Student(Sno,Sname,Sdate,Ssex) ,其中Sno学生编号,Sname学生姓名,Sdate出生年月,Ssex学生性别 

课程表 Course(Cno,Cname,Tno) ,其中Cno课程编号,Cname课程名称,Tno教师编号 

教师表 Teacher(Tno,Tname) ,其中Tno教师编号,Tname教师姓名 

选课表 SC(Sno,Cno,Score)  ,其中Sno学生编号,Cno课程编号,Score分数 

试利用所给的配套数据文件在线测试04数据.sql”选择合适平台搭建好数据环境,并按要求完成SQL语句的设计。 

--SQL设计部分

请分别按照下列题目的要求编写和调试对应的sql语句。

  1. 查询姓老师的数量;
Select count(*) from teacher where tname like “李%”;

  1. 查询学过编号为“01”但是没有学过编号为“02”的课程的同学的信息;
SELECT Student.Sno, Sname

FROM Student, SC

WHERE Student.Sno = SC.Sno AND Cno = '01' AND Sno NOT IN

(SELECT Sno FROM SC WHERE Cno = '02')

  1. 检索“01”课程分数小于60,按分数降序排列的学生信息;
select student.* from student,sc where student.sno=sc.sno and cno='01' and grade<60 group by score desc;

  1. 查询学生平均成绩及其名次
SELECT sno,AVG(score) FROM sc

GROUP BY sno

ORDER BY AVG(score) DESC ;

GPT版本:

SELECT student.sno,sname,AVG(score) AS avgscore,

# 查询学号,学生,别名为avgscore的平均分

(SELECT COUNT(*) FROM (SELECT sno,AVG(score) AS avgscore FROM sc GROUP BY sno) AS tt

# 构建tt,以sno分组的学号、平均分;在tt中求分组条数

WHERE tt.avgscore>AVG(sc.score))+1 AS RANK

# 别名为rank的排名,统计大于当前学生平均分的学生数,然后+1即为名次

FROM student,sc

WHERE student.sno=sc.sno

GROUP BY student.sno,sname

ORDER BY avgscore DESC;

  1. 查询出只选修两门课程的全部学生的学号和姓名
Select sc.sno,sname from student,sc

Where student.sno=sc.sno group by sc.sno,sname

Having count(*)=2

  1. 查询课程名称为数学,且分数低于60学生姓名和分数
Select sname,score from student,sc,course where student.sno=sc.sno and sc.cno=course.cno and course.cname=’数学’ and score<60

  1. 查询选修wxx老师所授课程的学生中,成绩最高的学生信息及其成绩
SELECT student.sno,sname,score FROM student,sc,teacher

WHERE teacher.tname='wxx' AND teacher.tno=sc.tno AND student.sno=sc.sno

ORDER BY score DESC LIMIT 1;

  1. 检索至少选修两门课程的学生学号
SELECT sc.sno FROM student,sc

WHERE student.sno=sc.sno

GROUP BY sc.sno

HAVING COUNT(*)>=2;

--编程设计部分

9创建一个名为sp1的存储过程及其调用语句,要求该存储过程带一个输入参数,用于接收学生姓名。执行该存储过程时,将根据输入的学生姓名输出该生的姓名、年龄和性别信息。(请用'jr'同学调用验证)

delimiter //

CREATE PROCEDURE sp1(IN myname CHAR(10))

BEGIN

SELECT sname,sage,sgender FROM student WHERE sname=myname;

END // delimiter



CALL sp1('jr')

  1. 创建一个名为sp2的函数及其调用语句,要求该函数带一个输入参数,输入参数用于接收课程号,函数返回选课表SC中该课程的平均分。(请用'12'号课程调用验证)

delimiter //

CREATE FUNCTION sp2(cnumber CHAR(10))

RETURNS FLOAT 

BEGIN

DECLARE avgscore FLOAT;

SELECT AVG(score) INTO avgscore FROM sc WHERE cno=cnumber;

RETURN avgscore;

END // delimiter



SELECT sp2('12')

11创建一个名为sp3的触发器,要求实现的功能是:当删除Student表的某条学生记录,同步删除选课表Sc对应该学生的全部选课记录。(该操作涉及记录删除,可能会对前面设计输出结果产生影响,切记不要做删除测试!)

delimiter //

CREATE TRIGGER sp3

AFTER DELETE ON student FOR EACH ROW

BEGIN

 DELETE FROM sc WHERE sc.sno=OLD.sno;

END //

delimiter

2023:

数据:

-- 学生表 Student
create table Student(Sid varchar(6), Sname varchar(10), Sdate datetime, Ssex varchar(10));
insert into Student values('01' , '赵雷' , '1999-06-01' , '男');
insert into Student values('02' , '钱电' , '1999-12-21' , '男');
insert into Student values('03' , '孙风' , '1999-05-20' , '男');
insert into Student values('04' , '李云' , '1999-08-06' , '男');
insert into Student values('05' , '周梅' , '2000-12-01' , '女');
insert into Student values('06' , '吴兰' , '2001-03-01' , '女');
insert into Student values('07' , '郑竹' , '1998-07-01' , '女');
insert into Student values('08' , '王菊' , '1999-01-20' , '女');
insert into Student values('09' , '刘景东' , '1998-07-01' , '男');
insert into Student values('10' , '李云' , '2003-06-20' , '女');

-- 选课表 SC
create table SC(Sid varchar(10), Cid varchar(10), score decimal(18,1));
insert into SC values('01' , '01' , 80);
insert into SC values('01' , '02' , 90);
insert into SC values('01' , '03' , 99);
insert into SC values('02' , '01' , 70);
insert into SC values('02' , '02' , 60);
insert into SC values('02' , '03' , 80);
insert into SC values('03' , '01' , 80);
insert into SC values('03' , '02' , 80);
insert into SC values('03' , '03' , 80);
insert into SC values('04' , '01' , 50);
insert into SC values('04' , '02' , 30);
insert into SC values('04' , '03' , 20);
insert into SC values('05' , '01' , 76);
insert into SC values('05' , '02' , 87);
insert into SC values('06' , '01' , 31);
insert into SC values('06' , '03' , 34);
insert into SC values('07' , '02' , 89);
insert into SC values('07' , '03' , 98);
insert into SC values('08' , '01' , 80);
insert into SC values('08' , '03' , 76);
insert into SC values('10' , '02' , 83);

-- 课程表 Course
create table Course(Cid varchar(10),Cname varchar(10),Tid varchar(10));
insert into Course values('01' , '语文' , '02');
insert into Course values('02' , '数学' , '01');
insert into Course values('03' , '英语' , '03');

-- 教师表 Teacher
create table Teacher(Tid varchar(10),Tname varchar(10));
insert into Teacher values('01' , '张兰');
insert into Teacher values('02' , '李云');
insert into Teacher values('03' , '王海欣');

-- 临时表 Temp(Cid课程号,Cname课程名,AScore平均成绩)
create table Temp(Cid varchar(10),Cname varchar(10) null,AScore decimal(18,1) null);

试按以下操作要求完成SQL语言设计。

答题规定:在每题下方附上设计的可编辑SQL文本,并粘贴运行结果截图。

1. 查询" 01 "课程比" 02 "课程成绩低的学生的信息及对应" 01 "" 02 "课程分数。要求输出结构如下图所示:

2. 查询平均成绩低于 60 分的学生信息,输出其编号Sid、姓名Sname和平均成绩Avg_score  3列内容。

3. 查询没有选课的学生信息,输出SidSnameSdateSsex  4列内容。

4. 查询选课学生中选课门数最少的信息,输出其SidSnameSnum(选课数)3列内容。

5. 查询「李」姓教师和学生的人数合计值,输出标题为“num”。

6. 查询「张兰」老师授课学生中年龄最大的学生,输出其SidSnameSsex 3列内容。

7. 查询重名学生信息,输出其SidSnameSdateSsex 4列内容。

8. 询和" 08 "号学生学习的课程完全相同的其他学生信息,输出其学号Sid内容。

9. 查询至少有一门课与学号为"10"的同学所学相同的学生信息,输出其SidSnameSdateSsex 4列内容。

10. 查询计算学生的最大年龄差,输出标题为YMax。要求利用学生生日的相差天数按1365日去计算年龄差。

11. 查询计算" 02 "课程的成绩优秀率,输出标题为ERate。这里约定成绩在90(含)以上为优秀。

12. 按平均成绩从高到低显示学生的课程成绩以及平均成绩。要求输出结构如下图所示:

13. 查询出只选修两门课程的学生学号和姓名两列信息。

14. 查询本月过生日的学生信息,输出其SidSnameSdateSsex四列内容。要求使用系统日期获得本月信息。

  • 编程操作(每题10分,3题共30分)
  1. 试编写一个无参存储过程proc1,要求同时实现以下两个功能。
  1. 查询前面Course表中各科成绩的最高分和最低分信息,输出课程号Cid、最高分Smax和最低分SMin 3列内容;
  2. 查询Student表中年龄次小和第三小的学生信息,输出其SidSnameSdate 3列内容。

答题要求附上对象设计的SQL程序和调用文本,并粘贴必要的运行结果截图。

  1. 试编写一个有参存储过程proc2,要求实现以下功能。

以输入参数pName为学生姓名条件查询该生的选课数并通过输出参数pMax完成输出操作。

最后调用设计好的存储过程proc2,查询输出学生周梅的选课数。

答题要求附上对象设计的SQL程序和调用文本,并粘贴必要的运行结果截图。

  1. 试编写一个触发trig要求实现以下功能。

向临时表Temp中添加已经开设的课程(课号Cid)时,第2Cname课程名字段值自动填入对应Course表中的课程名,第3AScore字段值自动填入对应SC表中该课程的平均成绩值。     

请测试添加课程“02”的效果。

       答题要求附上对象设计的SQL程序和测试语句,并附上运行截图!


写在最后

上辈子像无惨哥哥一样杀人放火,这辈子才会在ciee的计算机系学数据库。

选课的时候早点去隔壁大数据的课,不然会追悔莫及,佛来了都救不了你的那种。

至于为什么不回顾理论,首先30个小题+6个概念论述题+至少7个计算分析题,我觉得还是按照我上一句话说的做比较好。

当然,以上仅是菜鸡的发言。如果你是超级大佬,可以忽略我这部分的话语。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(写自己语言的练手级应用)JSON(JavaScript Object Notation) 产生式(BNF)

写自己的开发语言时&#xff0c;很多人都会拿JSON当第一个练习对象 开源net json FJSON 解析工具https://dbrwe.blog.csdn.net/article/details/107611540?spm1001.2014.3001.5502 <json> :: <object> | <array> <object> :: "{" [ <me…

【OJ比赛日历】快周末了,不来一场比赛吗? #06.23-06.29 #13场

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 以下信息仅供参考&#xff0c;以比赛官网为准 目录 2023-06-23&#xff08;周五&#xff09; #5场比赛2023-06-24…

k8s中如何修改pod中mysql的连接数

(方法一) 临时更改设置最大连接数据&#xff08;建议先临时修改&#xff0c;项目没有问题之后再进行永久修改&#xff09; 使用Navicat连接上数据库&#xff0c;点击连接名——点击新建查询—— 查看最大连接数 show variables like ‘’%max_connections%‘’; 查看当前用户使…

vue中注册组件的两种方式(全局注册 局部注册)

vue 是一个完全支持组件化开发的框架&#xff0c; 组件之间可以进行相互的引用。vue 中组件的引用原则&#xff1a;先注册后使用。 1. 组件的注册 组件之间可以进行相互的引用&#xff0c;例如&#xff1a; 注册组件的的方式&#xff1a;分为“全局注册”和“局部注册”两种…

Git Bash 上传本地文件到Gitee(AI助力解决问题)

前言 消失了将近一个月&#xff0c;预祝大家端午节快乐&#xff01; 这篇文章主要介绍下在上传本地项目到gitee时出现的问题&#xff0c;以及借助AI解决问题。 Gitee是一个基于 Git 的代码托管和开发协作平台&#xff0c;它提供了代码仓库、代码审查、持续集成/持续部署 (CI/C…

开关电源——DCDC变换器设计

开关电源——DCDC变换器设计 对于DCDC变换器来说&#xff0c;最重要的部分也是唯一一个磁学元件——电感需要考虑。 直流传递函数 正如之前我们所说&#xff0c;电感电流在开关导通的时候增加的电流必须等于在开关关断时候的减少的电流&#xff0c;即在一个工作周期中不积累…

支付宝性能测试案例分析

双11过程当中&#xff0c;促销开启的第一分钟内支付宝的交易总额就突破了一亿元&#xff0c;短时间内大量用户涌入的情况下&#xff0c;如何保证用户的支付顺畅&#xff0c;是对支付宝应用系统的一个极大的挑战。 一、性能测试支付宝场景介绍 双11过程当中&#xff0c;促销开启…

企业级ChatGPT开发的三大核心内幕及案例实战(三)

企业级ChatGPT开发的三大核心内幕及案例实战(三) 2.3 Notion 问答对话AI案例演示及源码分析 Gavin老师:NLP_Matrix_Space 如图2-2所示,我们先看一下Notion 问答对话AI案例的效果。你问一个问题,它会进行回答,然后它会告诉你,信息来源在什么地方,要看具体的信息,可以…

ICLR 2023 | RevCol:给神经网络架构增加了一个维度!大模型架构设计新范式

点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;计算机视觉研究院 学习群&#xff5c;扫码在主页获取加入方式 论文地址&#xff1a;https://arxiv.org/pdf/2212.11696.pdf 项目代码&#xff1a;https://github.com/megvii-research/RevCol 计…

MySQL进阶SQL语句

目录 1.select&#xff08;显示表格中一个或数个字段的所有数据记录&#xff09; 2.distinct&#xff08;不显示重复的数据记录&#xff09; 3.where&#xff08;有条件查询&#xff09; 4.and 、or&#xff08;且、或&#xff09; 5. in&#xff08;显示已知的值的数据记…

Goby 漏洞发布|Weaver OA PluginViewServlet Authentication Bypass Vulnerability

漏洞名称&#xff1a;泛微OA办公系统 PluginViewServlet 认证绕过漏洞 English Name&#xff1a;Weaver OA PluginViewServlet Authentication Bypass Vulnerability CVSS core: 8.0 影响资产数&#xff1a;45034 漏洞描述&#xff1a; 泛微OA 是一款专业强大的多功能办公…

直播回顾:HVV经验分享与重保整体解决方案

6月15日&#xff0c;Coremail联合北京钛星数安科技有限公司举办【HVV经验分享与重保整体解决方案发布】直播分享会。 直播会上Coremail安全团队和钛星数安的刘平平老师为大家带来重保时期的防御实战经验&#xff0c;帮助企业充分做好重保的安全准备工作&#xff0c;安稳度过重保…

uniapp中如何给下拉框动态绑值

前言&#xff1a; 在项目中我们会经常遇到新增的功能&#xff0c;而新增的页面中就会有输入框、下拉框、文本域、日期选择框等等。那么在uniapp是如何给下拉框中调用接口动态绑值的呢&#xff1f;请往下看 &#x1f4a8; &#x1f497; uView官网&#xff1a;介绍 | uView 2.0…

kettle开发-Day39-超好用AI+算力组合-算力提升器

前言&#xff1a; 上一节我们提到采用标记新旧数据的数据状态来快速整理需对比的数据&#xff0c;再选择性插入更新来保证数据的完整性。强强联合&#xff0c;保证了数据的高效和可用。 但是日常中&#xff0c;也存在部分场景&#xff0c;我们表输入是没有唯一性主键的&#xf…

计算机服务器数据库中了Devos后缀勒索病毒怎么办,记住以下步骤!

近期&#xff0c;我接到许多企业的求助&#xff0c;企业的用友财务软件遭受了Devos后缀勒索病毒的攻击&#xff0c;导致企业的用友财务账套被加密&#xff0c;许多重要的数据都无法正常读取&#xff0c;给公司的正常运营和数据安全带来了严重威胁。一旦企业被devos勒索病毒攻击…

【计算机组成原理】RV32I指令集

目录 一、RISC-V架构概述 二、RV32I指令集概述 三、RV32I指令格式 四、21条运算指令 五、8条访存指令 六、8条转移指令 七、10条其他指令 八、RV32I的寻址方式 一、RISC-V架构概述 RISC-V指令集起源&#xff1a; 全新的、具有典型RISC特征的指令集架构&#xff0c;20…

css基础知识六:谈谈你对BFC的理解?

一、是什么 我们在页面布局的时候&#xff0c;经常出现以下情况&#xff1a; 这个元素高度怎么没了&#xff1f;这两栏布局怎么没法自适应&#xff1f;这两个元素的间距怎么有点奇怪的样子&#xff1f; 归根究底是元素之间相互的影响&#xff0c;导致了意料之外的情况&#…

5个可以白嫖PPT模板的网站,不允许你们不知道

本期分享5个超好用的免费PPT模板网站&#xff0c;真的免费&#xff0c;建议收藏&#xff01; 菜鸟图库 https://www.sucai999.com/search/ppt/0_0_0_1.html?vNTYwNDUx 菜鸟图库网有非常丰富的免费素材&#xff0c;像设计类、办公类、自媒体类等素材都很丰富。PPT模板种类很多…

Linux文件基础IO的理解1

目录 一.Linux中文件的特性 二.C语言部分库文件相关函数 2.1在C语言的文件底层原理中&#xff1a; 2.打开与关闭函数 fopen&#xff1a;打开文件函数 2.1参数理解&#xff1a; fclose&#xff1a;关闭文件函数 实验案例&#xff1a; w方式&#xff1a; r方式的案例&…