ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySql创建简单的存储过程

2022-07-13 10:32:48  阅读:120  来源: 互联网

标签:存储 -- 创建 WHEN 参数 MySql 过程


MySql创建简单的存储过程

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

题目如下 创建一个存储过程,将一个五级制成绩转换成相对应的分数区间
等级成绩 分数区间
A >90
B 80-89
C 70-79
D 60-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

在这里插入图片描述

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

在这里插入图片描述

标签:存储,--,创建,WHEN,参数,MySql,过程
来源: https://www.cnblogs.com/Robin-Lin/p/16409427.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有