网站大量收购闲置独家精品文档,联系QQ:2885784924

网络数据库技术课程实验8anN1.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络数据库技术课程实验8anN1网络数据库技术课程实验8anN1

PAGE  PAGE 9 实验8 存储过程 实验类型: 验证型 实验课时: 4 指导教师: 鲁 琴 时 间:2011年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员: 实验目的: 掌握存储过程的创建和调用方法 掌握MySQL的流程控制语句 掌握MySQL游标的使用 4.掌握存储函数的创建和调用方法 5.掌握触发器的创建和使用 6.掌握事件的创建和使用 实验要求: 掌握存储过程、存储函数、触发器和事件的相关知识 实验内容: 存储过程 存储函数 触发器 事件 实验步骤: 说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2): Departments (DepartmentID,DepartmentName,Note) Employees (EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID) Salary(EmployeeID,InCome,OutCome) 要求:将实验步骤中紫色底纹部分填上正确答案。 存储过程 (1)创建存储过程,使用Employees表中的员工人数来初始化一个局部变量,并调用这个存储过程。 USE YGGL DELIMITER $$ CREATE PROCEDURE TEST(OUT NUMBER1 INT ) BEGIN DECLARE NUMBER2 INT; SET NUMBER2=(SELECT COUNT(*) FROM Employees); SET NUMBER1=NUMBER2; END$$ DELIMITER ; 调用该存储过程 CALL TEST(@NUMBER); 查看@NUMBER的值。 SELECT @NUMBER ; 将调用存储过程及查看@NUMBER的值的命令及结果进行屏幕截图。 创建存储过程,比较两个员工的实际收入,若前者比后者高就输出0,否则输出1。 DELIMITER $$ CREATE PROCEDURE COMP(IN ID1 CHAR(6),IN ID2 CHAR(6),OUT BJ INT ) BEGIN DECLARE SR1,SR2 FLOAT; SELECT InCome-OutCome INTO SR1 FROM Salary WHERE EmployeeID=ID1; SELECT InCome-OutCome INTO SR2 FROM Salary WHERE EmployeeID=ID2; IF SR1SR2 THEN SET BJ=0; ELSE SET BJ=1; END IF; END$$ DELIMITER ; 调用该存储过程 CALL COMP(000001,108991,@BJ1); 查看@BJ1的值。 SELECT @BJ1 ; 将调用存储过程及查看@BJ1的值的命令及结果进行屏幕截图。 创建存储过程,使用游标确定一个员工的实际收入是否排在前三名。结果为TRUE表示是,结果为FALSE表示否。 DELIMITER $$ CREATE PROCEDURE TOP3(IN EM_ID CHAR(6),OUT OK BOOLEAN ) BEGIN DECLARE X_EM_ID CHAR(6); DECLARE SEQ INT; DECLARE ACT_IN FLOAT; DECLARE FOUND BOOLEAN; DECLARE SALARY_DIS CURSOR FOR SELECT EmployeeID, InCome-OutCome FROM Salary ORDER BY 2 DESC; DECLARE CONTINUE HANDLER FOR NOT FOUND SET FOUND=FALSE; SET SEQ=0; SET FOUND=TRUE; SET OK=FALSE; OPEN SALARY_DIS; FETCH SALARY_DIS INTO X_EM_ID,ACT_IN; WHILE FOUND AND SEQ3 AND OK=FALSE DO SET SEQ=SEQ+1; IF X_EM_ID=EM_ID THEN SET OK=TRUE; END IF; FETCH SALARY_DIS INTO X_EM_ID,A

文档评论(0)

ganqludp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档