首页 > 其他分享 >4.存储过程

4.存储过程

时间:2023-04-29 19:56:59浏览次数:38  
标签:成绩表 存储 StudentID 学号 200055001 成绩 过程 SELECT

1、创建一个存储过程,测试课程号为j005是否有成绩。
CREATE PROCEDURE check_grade_for_j005_1
AS
BEGIN
DECLARE @OutputValue VARCHAR(100);
IF (SELECT 课程号 FROM 课程表 WHERE 课程号 = 'j005') = 'j005'
SET @OutputValue = 'Grades for course j005 exist.';
ELSE
SET @OutputValue = 'Grades for course j005 do not exist.';

​ PRINT @OutputValue ;

END
EXEC check_grade_for_j005_1
2、创建一个存储过程,检索学生课程成绩。
CREATE PROCEDURE GetStudentGrades
@studentId INT
AS
BEGIN
SELECT 学生表.姓名,课程表.课程名, 成绩表.成绩
FROM 学生表
INNER JOIN 成绩表 ON 学生表.学号 = 成绩表.学号
INNER JOIN 课程表 ON 课程表.课程号 = 成绩表.课程号
WHERE 学生表.学号= @studentId
END

3、检索指定学号200055001的学生姓名和入学成绩。
EXEC GetStudentGrades @studentId = 200055001;

4、指定学号200055001,查找该生所考科目的最高分。

CREATE PROCEDURE GetStudentMaxScore
@StudentID varchar(50)
AS
BEGIN
SELECT MAX(成绩) AS MaxScore
FROM 成绩表
WHERE 学号 = @StudentID;
END
EXEC GetStudentMaxScore @StudentID = 200055001;
5、在第四题的基础上设置输入参数指定默认值学号为200055001。现在查找20005002。
CREATE PROCEDURE GetStudentMaxScore1
@StudentID varchar(50)
AS
BEGIN
SELECT MAX(成绩) AS MaxScore
FROM 成绩表
WHERE 学号 = @StudentID +1;
END
EXEC GetStudentMaxScore1 @StudentID = 200055001;
6、带输出参数的存储过程。建立SP,计算两个数的乘积。SP的入口参数是两个整数,SP的返回值为乘积。
CREATE PROCEDURE MultiplyNumbers
@Number1 INT,
@Number2 INT,
@Result INT OUTPUT
AS
BEGIN

SET @Result = @Number1 * @Number2

END

DECLARE @Product INT
EXEC MultiplyNumbers 2, 4, @Product OUTPUT
SELECT @Product AS 'Result'

7、依据学生表和成绩表建立平均成绩视图;在该视图上建立指定学号200055001的存储过程,检索学生的平均成绩。

a、建立平均成绩视图

CREATE VIEW AverageScores
AS
SELECT s.学号, s.姓名, AVG(e.成绩) AS 平均成绩
FROM 学生表 s
JOIN 成绩表 e ON s.学号 = e.学号
GROUP BY s.学号, s.姓名;

SELECT * FROM AverageScores

b、建立指定学号200055001的存储过程,检索学生的平均成绩

CREATE PROCEDURE GetStudentAverageScore
@StudentID varchar(50)
AS
BEGIN
SELECT 平均成绩
FROM AverageScores
WHERE 学号 = @StudentID;
END

测试检索学生的平均成绩

EXEC GetStudentAverageScore @StudentID = 200055001

标签:成绩表,存储,StudentID,学号,200055001,成绩,过程,SELECT
From: https://www.cnblogs.com/container-simple/p/17364408.html

相关文章

  • OverTheWire攻关过程-Bandit模块9
    我们打开lv8-lv9关卡,查看信息机器翻译下一级的密码存储在文件数据中。txt并且是唯一一行只出现一次的文本难度增大了我们登陆服务器我们查看提示uniq命令sort命令知识点:uniq命令Linuxuniq命令用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用。uniq可检查文本......
  • Vulnhub之GreenOptics靶机详细测试过程
    GreenOptics识别目标主机IP地址─(kali㉿kali)-[~/Vulnhub/GreenOptic]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:Finished!|ScreenView:UniqueHosts......
  • Inspur CS5280H BMC重装系统的过程
    InspurCS5280HBMC重装系统的过程背景公司里面一台信创海光的设备默认安装了银河麒麟v10的操作系统但是在进行瀚高数据库压测时总会出现无缘无故的宕机的情况.昨天还特别学习了下crash部分.也没有定位到具体的问题原因今天想着换一个系统,进行验证.客户倾向于采购UOS......
  • JVM系列——java文件到JVM中的整个过程
    关注“Java后端技术栈“回复“面试”获取最新资料今天来聊聊从java文件到class文件,最后class文件是怎么到JVM中的。首先是编写一个HelloWorld.java类,然后通过这一系列的编译操作,最终成了HelloWorld.class文件。然后把HelloWorld.class文件加载到JVM中的整个过程:1,装载。查找和导入cl......
  • EF Core 中原生SQL、存储过程、视图的使用
    包括EFCore中原型Sql的执行,包括存储过程和视图数据处理方法,同时包括参数化执行sql语句的注意事项。原生Sql查询原生sql查询使用如下两个方法进行,查询的结构只能映射到dbset关联的对象类型DBSet.FromSqlRaw()DBSet.FromSqlInterpolated()可以使用部分linq扩展方法.FromSqlR......
  • PostgreSQL技术大讲堂 - 第15讲:数据文件与块存储结构
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。Part15:数据文件与块存储结构内容1:表的OID与数据文件对应关系......
  • vue 使用腾讯云 cos存储 上传
    参考文档:https://blog.csdn.net/qq_34170840/article/details/1245203881、页面部分点击查看代码<inputref="fileRef"title=""type='file'name="file"multipleclass="file-input"@change="uploadStart......
  • 【图文详解】一文全面彻底搞懂HBase、LevelDB、RocksDB等NoSQL背后的存储原理:LSM-tree
    LSM树广泛用于数据存储,例如RocksDB、ApacheAsterixDB、Bigtable、HBase、LevelDB、ApacheAccumulo、SQLite4、Tarantool、WiredTiger、ApacheCassandra、InfluxDB和ScyllaDB等。在这篇文章中,我们将深入探讨LogStructuredMergeTree,又名LSM树:许多高度可扩展的NoSQL分......
  • 记一次长连接断开排查过程
    文章地址问题WebSocket的网络链路是浏览器<->Nginx<->后端服务,心跳时间是60s,出现了有心跳发送但长连接中断的问题。过程查看后端服务日志,发现是被动断开,不是空闲检测主动断开的,再抓服务器的网络包,确认后端服务是被断开的,排除后端服务的问题。使用其他语言建立We......
  • 上篇:带你手工体验从写代码、编译、打包镜像、部署到K8S的全过程
    本篇使用的gowebdemo,页面很简单,功能也是很简单,写代码不是本篇的重点,重点是先体验一下整个流程:开发环境准备、写代码、提交到仓库、拉取代码构建并打包镜像、推送到镜像仓库,部署到K8S。本篇的分享分为上篇和下篇,上篇是手动,计划在下篇再讲自动。只有手动体验过,才能更能深入的理......