数据库实验 | 第2关:建立和调用存储过程(带输出参数)
任务描述
本关任务:
销售数据库有工作人员、销售单数据表
工作人员gzry数据表有雇员号gyh、姓名gyxm、出生日期csrq、学历xl、工资gz、部门bm、电话dh字段
销售单xsd数据表有销售单号xsdh、会员号hyh、雇员号gyh、销售日期xsrq、应付款yfk、实际付款sjfk字段
任务要求
建立存储过程
ygyj(in nf int,in yf int,in xm varchar(10) out pj varchar(10))
输入年份nf和月份yf和姓名xm ,输出对该工作人员的评价pj。
若该员工在指定年份和月份的销售业绩(销售单xsd的实际付款sjfk的合计)大于等于10000元,则返回优秀,大于等于5000元,则返回达标,大于0小于5000元返回不达标,若没有销售单则返回无业绩。
调用过程
以2015、7和王雅静为参数,调用ygyj过程,将结果存入@yj1
以2015、6和廖秉娴为参数,调用ygyj过程,将结果存入@yj2
以2015、7和赵敏为参数,调用ygyj过程,将结果存入@yj3
以2015、7和章伟为参数,调用ygyj过程,将结果存入@yj4
相关知识
参数列表
([in|out|inout proc_name type][,in|out|inout proc_name type])
过程可以没有参数或多个参数,多个参数之间用逗号分隔
IN输入参数,使数据可以传递给存储过程
OUT输出参数,用于需要返回结果
INOUT输入输出参数 既可以充当输入参数也可以充当输出参数
调用存储过程
CALL 存储过程(参数列表)
当有out参数时,可以用全局变量接收结果
全局变量以@开头,在mysql会话中一直有效
case多分支语句
CASE
WHEN <条件1> THEN <语句1>
WHEN <条件2> THEN <语句2>
……
[Else <其他语句>]
END CASE
代码
use sale;
#代码开始
delimiter $$
create procedure ygyj(in nf int, in yf int, in xm varchar(10), out pj varchar(10))
begindeclare jg int;select sum(sjfk) from xsd join gzry on gzry.gyh = xsd.gyh where year(xsrq) = nf and month(xsrq) = yf and gyxm = xm into jg;casewhen isnull(jg) then set pj = "无业绩";when jg < 5000 then set pj = "不达标";when jg < 10000 then set pj = "达标";else set pj = "优秀";end case;
end $$
delimiter ;
call ygyj(2015, 7, "王雅静", @yj1);
call ygyj(2015, 6, "廖秉娴", @yj2);
call ygyj(2015, 7, "赵敏", @yj3);
call ygyj(2015, 7, "章伟", @yj4);
#代码结束
select @yj1,@yj2,@yj3,@yj4;
数据库实验 | 第2关:建立和调用存储过程(带输出参数)相关推荐
- C#调用存储过程带输出参数或返回值分类(转)
C#调用存储过程带输出参数或返回值 分类: Asp.net MSSQL2014-05-26 14:02 330人阅读 评论(0) 收藏 举报 [csharp] view plaincopyprint? ...
- mysql 输出参数赋值_【Mysql 调用存储过程,输出参数的坑】
UIViewContentMode各类型效果 UIViewContentMode typedef enum { UIViewContentModeScaleToFill, UIView ...
- php pdo 存储过程的返回所有结果,PHP_PDO 调用存储过程,返回参数问题
$stmt = $db->prepare("CALL pro_test(?,@?)");$stmt->bindParam(1, $name);$stmt->bin ...
- C#里调用带输出参数的存储过程
C#里调用带输出参数的存储过程 1using System; 2using System.Collections.Generic; 3using System.Linq; 4using Sys ...
- jpa调用mysql函数_Spring data jpa 调用存储过程处理返回参数及结果集(示例代码)
一.环境 1.此随笔内容基于spring boot整合的spring data jpa项目, 2.数据库为mysql 5.7.9版本 二.内容 1. 新建存储过程 pro_query_object B ...
- 在asp中怎么调用带输出参数的存储过程
这是我写的存储过程 CREATE proc hz @count2 bigint output, @minsl varchar, @maxsl varchar as create table #tmp( ...
- C# 调用存储过程操作 OUTPUT参数和Return返回值
本文转载:http://www.cnblogs.com/libingql/archive/2010/05/02/1726104.html 存储过程是存放在数据库服务器上的预先编译好的sql语句.使用存 ...
- mybatis mysql 存储过程传入对象_mybatis 调用mysql存储过程 带输出输入参数
首先感谢网络上以为朋友.其实我不认识.看到他的博客才做出来. http://lohasle.iteye.com/blog/1669879 他的地址.下面的是我一些简单拓展的 ? ? 存储过程都是一样的 ...
- pdo mysql 存储过程 out_PHP_PDO 调用mysql 带返回参数的存储过程
DROP PROCEDURE IF EXISTS pro_test; create procedure pro_test(in val VARCHAR(50) ,out rtn int) begin ...
- SQL server 存储过程的建立和调用
SQL server 存储过程的建立和调用 存储过程的建立和调用 --1.1准备测试需要的数据库:test,数据表:物料表,采购表 if not exists (select * from maste ...
最新文章
- 嵌入式四大通信接口的解释
- 2020-10-26如何在Amazon AWS上设置一台免费Linux云主机
- 千亿参数大模型时代,QQ浏览器团队十亿级小模型「摩天」登顶CLUE
- 如何卸载Exchange Server 2010
- android Handler机制之ThreadLocal详解
- 如何修改桌面,收藏夹,我的文档等等的存储位置
- MySQL查询日志总结
- Python3空字符串和len()函数
- idea提示 cannot resolve symbol “println
- 『数据库』这篇数据库的文章真没人看--数据库完整性
- 《零基础》MySQL 查询数据(十二)
- extjs树使用别的皮肤的样式_设计师发布努努重做之后的冰雪节皮肤设计稿
- Linux /etc/rc.d 下面 rc${runlevel}.d rc.local init.d 区别
- mysql nodejs 并发
- python第三周笔记_Python第四周 学习笔记(1)
- jenkins使用Role Strategy管理用户权限
- Windows10配置maven环境变量(图文教程)
- SQL SERVER 2000个人版下载
- 如何防御网站被攻击?
- Java中的条件运算符
热门文章
- C#开发微信门户及应用(26)-公众号微信素材管理
- android 晃动监听,Android 摇晃动画代码实现技巧
- 一次读懂flex布局
- Task 5 超大图上的节点表征学习
- turtle绘制哔哩哔哩小电视
- mac复制文件提示cp: /Volumes/WINDOWS11/sources/install.wim: File too large
- SHUCANGH_JIE
- [1]传奇3服务器源码分析一 LoginGate
- 利用Anaconda安装python第三方库
- linux 无法登陆mysql服务器_万网Linux独享服务器MySQL数据库无法登陆处理方法