- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 绿色建筑再认识.doc
- 综述-早期胃癌.doc
- 绿色建筑设计理念.doc
- 绿色开花植物的一生2.doc
- 绿色建材与人居环境.doc
- 绿色开花植物的一生复习学案.doc
- 绿色施工导则_eaa4018d_6ed4_45e3_b510_ee2faf60b.pdf
- 绿色循环建筑成趋势 钢结构市场潜力大.doc
- 绿色开花植物的一生4—7.doc
- 绿色生态墓地建设项目报告.doc
- 一城一云服务城市高质量发展白皮书(2023).pdf
- 中国连锁餐饮企业资本之路系列报告(2023)-历尽千帆,厚积薄发.pdf
- 有色金属行业专题研究:未来焦点,钒液流电池储能风潮兴涌.pdf
- 中国 “一带一路”实践与观察报告.pdf
- 医药生物-消费器械行业2023年中报总结:积极拥抱高璧垒高成长(202309).pdf
- DB50T 699-2016 简易升降机检验规则.pdf
- DB50T 746-2016 水库大坝安全监测资料整编分析规程 .pdf
- 看DAO2025-未尽研究报告(2024).pdf
- 市场洞察力报告-数据安全检查工具箱(2024).pdf
- 2024年预见未来:中国元医院建设发展调研报告.pdf
文档评论(0)