MySql创建简单的存储过程

本文介绍了如何使用MySQL创建两个存储过程,proc1和proc2,来实现五级制成绩(A、B、C、D、E)到对应分数区间的转换。proc1使用IF嵌套,proc2采用CASE语句。存储过程接受一个长度为1的等级参数S,并根据参数返回相应的分数区间。示例中展示了存储过程的创建和运行结果。
摘要由CSDN通过智能技术生成

MySql创建简单的存储过程

今天是碰巧老师布置了一道作业,要求创建一个简单的存储过程来实现不同的五级制与百分制的成绩转换

题目如下 创建一个存储过程,将一个五级制成绩转换成相对应的分数区间
等级成绩分数区间
A>90
B80-89
C70-79
D60-69
E<60

要求一:使用IF嵌套创建proc1存储过程

要求二:使用case 语句创建proc2存储过程

注:等级制成绩由参数S (定位长度1)

分析

首先我们先看题目 将一个五级制成绩转换成相对应的分数区间
那么就是我们需要创建一个简单的存储过程  我们输入不同的等级 则存储过程输出不同的内容
比如输入A 则存储过程输出 '>90'


(IN a VARCHAR(1) )
IN - 是默认模式。在存储过程中定义IN参数时,调用程序必须将参数传递给存储过程。 
另外,IN参数的值被保护。这意味着即使在存储过程中更改了IN参数的值,
在存储过程结束后仍保留其原始值。换句话说,存储过程只使用IN参数的副本。

OUT - 可以在存储过程中更改OUT参数的值,
并将其更改后新值传递回调用程序。请注意,
存储过程在启动时无法访问OUT参数的初始值。

INOUT - INOUT参数是IN和OUT参数的组合。
这意味着调用程序可以传递参数,
并且存储过程可以修改INOUT参数并将新值传递回调用程序。


题目一

-- 首先这个存储过程我们需要定义一个参数 其次就这个参数要求长度为 1
-- create 创建 or 或者 replace 替代 PROCEDURE 一个存储过程  proc2 存储过程的名字 (IN(模式详细请看上方) s VARCHAR(1) (传递进存储过程参数类型和长度限制) ) begin 开始 。。。。。。(存储过程内容)  end;(结束)
CREATE PROCEDURE proc1 ( IN s VARCHAR ( 1 ) ) BEGIN
	SELECT
	IF
		(
			s = 'A',
			'>90',
		IF
			(
				s = 'B',
				'80--89',
			IF
				(
					s = 'C',
					'70--79',
				IF
					(
						s = 'D',
						'60--69',
					IF
					( s = 'E', '<60', '请输入正确的等级!' ))))) AS '结果' 
	FROM
		DUAL;
	
	END
点击创建proc1存储过程,创建成功

在这里插入图片描述

运行存储过程,结果如下

在这里插入图片描述
在这里插入图片描述

题目二

CREATE PROCEDURE proc2 ( IN s VARCHAR ( 1 ) ) BEGIN
	SELECT
	CASE		
		WHEN
			s = 'A' THEN
				'>90' 
				WHEN s = 'B' THEN
				'80--89' 
				WHEN s = 'C' THEN
				'70--79' 
				WHEN s = 'D' THEN
				'60--69' 
				WHEN s = 'E' THEN
				'<60' 
			END AS '结果' 
		FROM
			DUAL;
	
END
点击运行创建proc2,创建成功 使用工具为Navicat 15

在这里插入图片描述

运行创建的存储过程,要求实现

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值