存储过程和函数_2.创建带输入参数in的存储过程。 创建一个从student表查询学生资料的存储过程 pro-程序员宅基地

技术标签: 数据库作业  

【实验14-15】

(1) 创建不带参数的存储过程。
① 创建一个从student表查询班级号为“20070301”班的学生资料的存储过程proc_1,其中包括学号、姓名、性别、出生年月等。调用proc_1存储过程,观察执行结果。

CREATE PROCEDURE proc_1()
BEGIN
	SELECT sno,sname,ssex,sbirthday
	FROM student
	WHERE classno='20070301';
END;
CALL proc_1();

② 在gradem1数据库中创建存储过程proc_2,要求实现如下功能:存在不及格情况的学生选课情况列表,其中包括学号、姓名、性别、课程号、课程名、成绩、系别等。调用proc_2存储过程,观察执行结果。

CREATE PROCEDURE proc_2()
BEGIN
	SELECT a.sno,sname,ssex,b.cno,cname,degree,sdept
	FROM student a,sc b,course c
	WHERE a.sno=b.sno AND b.cno=c.cno
	AND degree<60;
END;
CALL proc_2();

(2) 创建带输入参数的存储过程。
创建一个从student表查询学生资料的存储过程 proc_3,其中包括学号、姓名、性别、出生年月、班级等。要查询的班级号通过执行语句中的输入参数传递给存在过程。
其中,“20070303”为要传递给存储过程proc_3的输入参数,也即是要查询的资料的班级号。

CREATE PROCEDURE proc_3(IN classno_no INT,OUT class_no VARCHAR(20))
BEGIN
	SELECT sno,sname,ssex,sbirthday,classno
	FROM student
	WHERE classno=classno_no;
END;
CALL proc_3('20070303',@sum); 

(3) 创建带输出参数的存储过程。
创建一个从sc表查询某一门课程考试成绩总分的存储过程proc_4。
在以上存储过程中,要查询的课程号通过执行语句中的输入参数@cno传递给存储过程,@sum_degree作为输出参数用来存放查询得到的总分。执行此存储过程,观察执行结果。

CREATE PROCEDURE proc_4(IN `@cno` char(10),OUT `@sun_degree` VARCHAR(20))
	BEGIN
		SELECT SUM(degree)
		FROM sc
		WHERE cno=@cno;
	END;
CALL proc_4('a01',@sun_degree);

这个答案是空的,不知道哪里错了

(4) 创建proc_5实现功能:输入的学号,根据该生所选课程的平均分显示提示信息,平均分大于等于90的,则显示“该生成绩优秀”,平均分小于90但是大于等于80的,则显示“该生成绩良好”,平均分小于80但是大于等于60的,则显示“该生成绩合格”,平均分小于60的,则显示“该生成绩不及格”。
并调用该存储过程,显示某个学生的学习情况。

CREATE PROCEDURE proc_5(IN sno_no INT)
BEGIN
	SELECT CASE
	WHEN AVG(degree)>=90 THEN '改考生成绩优秀'
	WHEN AVG(degree)>=80 AND degree<90 THEN '改考生成绩良好'
	WHEN AVG(degree)>=60 THEN '改考生成绩合格'
	WHEN AVG(degree)<60 THEN '改考生成绩不合格'
	END
	AS '成绩'
	FROM sc
	WHERE sno=sno_no;
END;
CALL proc_5('2007010104');

(5) 创建func_5实现功能:输入的学号,根据该生所选课程的平均分显示提示信息,平均分大于等于90的,则显示“该生成绩优秀”,平均分小于90但是大于等于80的,则显示“该生成绩良好”,平均分小于80但是大于等于60的,则显示“该生成绩合格”,平均分小于60的,则显示“该生成绩不及格”。并调用该函数,显示某个学生的学习情况。

CREATE FUNCTION func_5(sno_no INT)
RETURNS VARCHAR(20)
BEGIN
	DECLARE a VARCHAR(20);
	SELECT CASE
	WHEN AVG(degree)>=90 THEN '改考生成绩优秀'
	WHEN AVG(degree)>=80 AND degree<90 THEN '改考生成绩良好'
	WHEN AVG(degree)>=60 THEN '改考生成绩合格'
	WHEN AVG(degree)<60 THEN '改考生成绩不合格'
	END AS 成绩 INTO a 
	FROM sc
	WHERE sno=sno_no;
	RETURN a;
END;
SELECT func_5('2007010104');
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_46641784/article/details/106592506

智能推荐

三重form提交_html form 服务器收到3次-程序员宅基地

文章浏览阅读480次。网上大多都说form表单不能重叠,经过测试可以通过js来实现form多重提交 Html: " method="post" enctype="multipart/form-data" onsubmit="doSubmit();"> JS代码:function doSubmit(){ testForm.action = "http://.....";_html form 服务器收到3次

NLP(四十四)使用keras-bert加载BERT模型的两种方法_keras bert当作一层输入-程序员宅基地

文章浏览阅读3.8k次,点赞8次,收藏37次。  keras-bert是Keras框架加载BERT模型的Python第三方模块,在之前的文章中,笔者介绍了如何使用keras-bret来实现不同的NLP任务,比如:NLP(三十四)使用keras-bert实现序列标注任务NLP(三十五)使用keras-bert实现文本多分类任务NLP(三十六)使用keras-bert实现文本多标签分类任务NLP(三十七)使用keras-bert实现英语序列标注任务NLP(三十九)使用keras-bert实现完形填空及简单的文本纠错功能NLP(四十二)人物关系_keras bert当作一层输入

Mybatis-plus基础(附实现CRUD详细步骤)_mybatis plus crud override-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏6次。1.建数据库首先建一个简单的数据库(此处使用的是mysql)数据库名:mybatis_plus-- Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` varchar(30) DEFAULT NULL COM_mybatis plus crud override

S2I与Jenkins结合使用实现CI/CD_openshift cicd-程序员宅基地

文章浏览阅读294次。本文章摘选自 《云原生应用构建 基于OpenShift 魏新宇 王洪涛等著》S2I与Jenkins相结合实现CI/CD主要有以下三种方式。·Jenkins负责CI,S2I负责CD。·Jenkins管理Pipeline,调度OpenShift S2I完成CI/CD。·在OpenShift上使用Jenkins File,调用Jenkins实现CI、OpenShift负责CD。我们称这种方式为OpenShift Pipeline。在第一种方式中,Jenkins负责CI,输出物是应用软件包(如._openshift cicd

算法提高课:2.1.3 BFS中的双向广搜和A-star_双向搜索中的条纹尺寸小于bfs中的条纹尺寸-程序员宅基地

文章浏览阅读271次。190. 字串变换178. 第K短路_双向搜索中的条纹尺寸小于bfs中的条纹尺寸

python测试框架untest怎么循环执行_unittest如何在循环遍历一条用例时生成多个测试结果...-程序员宅基地

文章浏览阅读1.1k次。引用自:http://blog.csdn.net/kaku21/article/details/42124593参考网址:http://programmaticallyspeaking.com/test-data-provider-using-python-metaclass.html使用TestNG进行测试的时候,允许使用外部数据源来驱动测试方法的执行,举个例子:我们有一个测试方法,而这个测试方..._unittest遍历

随便推点

27-正则表达式一_27%-6的表达式子-程序员宅基地

文章浏览阅读104次。第二十七章.正则表达式一一.正则表达式正则表达式是一个查找和替换字符串的强有力的工具。在 JavaScript 中,正则表达式通过内置的“RegExp”类的对象来实现,并与字符串集成。例子常规写法://提取出str中所有的数字组成一个数组 ["188","38","3","29"]let str = "特务兔187伟哥38小希3薄荷29";function fn( str ){ let arr = []; let s = ""; for (le_27%-6的表达式子

php mysql 注入漏洞_PHP安全:SQL注入漏洞防护-程序员宅基地

文章浏览阅读1.4k次,点赞7次,收藏29次。原标题:PHP安全:SQL注入漏洞防护SQL注入是最危险的漏洞之一,但也是最好防护的漏洞之一。本文介绍在PHP的编码中合理地使用MySQL提供的预编译进行SQL注入防护,在PHP中使用PHP数据对象扩展或MySQLi扩展连接数据库,并且对SQL语句进行预编译处理。如果在一些项目中无法使用预编译来防止SQL注入,可以采用传统方法来验证用户的输入是否合法,严格控制输入参数的数据类型,过滤非法字符,拦截..._php max_prepared_stmt_count

大脸猫SEO:网站优化的要点都有哪些呢?我来和大家分享七大点-程序员宅基地

文章浏览阅读190次。网站在优化的时候很多人往往找不到要点去优化,所以有些时候都会遇到很多问题,所以找到要点进行优化会更方便,那么网站优化的要点都有哪些呢?接下来我们就来给大家介绍一下网站优化的要点。1.空间优化:空间是需要选择一些比较安全稳定的空间,还需要没有被搜索引擎惩罚过的空间服务器才可以。因此尽量选择独立IP防止同IP出现被搜索引擎惩罚过。2. 域名优化:域名的优化很重要,所以尽量选择和...

JavaWeb框架_Struts2_(三)---->Struts2的拦截器-程序员宅基地

文章浏览阅读74次。2. Struts2的拦截器(使用拦截器实现权限控制)2.1 拦截器的概述  拦截器是Struts2的核心组成部分,它可以动态的拦截Action调用的对象,类似与Servlet中的过滤器。Struts2的拦截器是AOP(Aspect-Object-Programming,面向切面编程)的一种实现策略,是可插拔的,需要某一个功能时就“插入”这个功能的拦截器,不需要这个功能就“拔出..._struts框架web什么情况下会出发拦截器

目标检测标注的时代已经过去了?-程序员宅基地

文章浏览阅读245次。在快速发展的机器学习领域,有一个方面一直保持不变:繁琐和耗时的数据标注任务。无论是用于图像分类、目标检测还是语义分割,长期以来人工标记的数据集一直是监督学习的基础。然而,由于一个创新性的工具 AutoDistill,这种情况可能很快会发生改变。Github代码链接如下:https://github.com/autodistill/autodistill?source=post_pageAutoDi..._groundingdino 自动标注yolo

Spring 之概念应用描述_spring 概念以及如何应用及作用-程序员宅基地

文章浏览阅读504次,点赞2次,收藏6次。好记忆不如烂笔头,能记下点什么,就记下点什么,方便温故而知新!Spring Framework 现在几乎已成为 Java Web 开发的标配框架。那么,作为 Java 程序员,你对 Spring 的主要技术点又掌握了多少呢?不妨用本文的问题来检测一下。原文来自:https://www.edureka.co/blog/interview-questions/spring-interview-..._spring 概念以及如何应用及作用