实验十四

This commit is contained in:
2024-11-28 00:37:53 +08:00
parent ea0131ce37
commit 6d6af4dbf1
2 changed files with 39 additions and 0 deletions
+2
View File
@@ -36,6 +36,8 @@
- [实验十三](实验十三.sql)
- [实验十四](实验十四.sql)
### 课后作业📖
[课后作业](课后作业/)
+37
View File
@@ -0,0 +1,37 @@
-- 建立如下的存储过程(基于前面实验建立的表和插入的数据,并为每个存储过程设计返回的状态值):
-- 1.按要求设计完成如下功能的存储过程。
-- (1)查询平均分数在x到y范围内的学生信息。 该存储过程有两个参数:要求查询的学生信息包括学号、姓名、院系名称和平均成绩。
CREATE PROCEDURE quire_stu_between
@x INT,
@y INT
AS
BEGIN
SELECT 学生表.学号, 学生表.姓名, 院系表.名称, 学生表.平均成绩
FROM 学生表
JOIN 院系表 ON 学生表.院系编号 = 院系表.院系
WHERE 学生表.平均成绩 BETWEEN @x AND @y;
END;
-- (2)更新操作,以学号、课程编号和考试成绩作参数更新指定学生和课程的考试成绩,并返回该学生的平均成绩。
CREATE PROCEDURE update_stu_grade
@学号 VARCHAR(8),
@课程编号 VARCHAR(8),
@考试成绩 SMALLINT
AS
BEGIN
UPDATE 选课表
SET 成绩=@考试成绩
WHERE 学号=@学号 AND 课程编号=@课程编号;
SELECT 平均成绩 FROM 学生表
WHERE 学号=@学号;
END;
-- 2.在客户端以存储过程和输入SQL语句的方式分别执行相同的查询或操作,比较使用和不使用存储过程的区别。
-- 使用存储过程
EXEC quire_stu_between @x=85,@y=90;
-- 使用SQL查询
SELECT 学生表.学号, 学生表.姓名, 院系表.名称, 学生表.平均成绩
FROM 学生表
JOIN 院系表 ON 学生表.院系编号 = 院系表.院系
WHERE 学生表.平均成绩 BETWEEN 85 AND 90;