当前位置: 首页 > news >正文

邯郸网站建设品牌加盟wordpress用户前端发文

邯郸网站建设品牌加盟,wordpress用户前端发文,低价网站建设扬州,保定网站设计多少钱目录 1. 题目1.1 游标1.2 触发器 2. 解答2.1 游标2.2 触发器 1. 题目 1.1 游标 创建存储过程#xff0c;利用游标依次显示某部门的所有员工的实际收入。(分别用使用 计数器 来循环和使用 标志变量 来控制循环两种方法实现) 创建存储过程#xff0c;将某部门的员工工资按工作… 目录 1. 题目1.1 游标1.2 触发器 2. 解答2.1 游标2.2 触发器 1. 题目 1.1 游标 创建存储过程利用游标依次显示某部门的所有员工的实际收入。(分别用使用 计数器 来循环和使用 标志变量 来控制循环两种方法实现) 创建存储过程将某部门的员工工资按工作年限进行调整工作年限3,提高 %53工作年限5提高 %10工作年限5提高 %15。 1.2 触发器 创建触发器当在 employees 表中插入一个员工信息时如果员工的部门编号department 表中没有则取消插入操作。 创建触发器当在 employees 表中删除一条记录时在 salary 表中删掉该员工的记录。 创建触发器当在 employees 表中修改员工编号时在 salary 表中同时修改员工编号。 2. 解答 2.1 游标 创建存储过程利用游标依次显示某部门的所有员工的实际收入。(分别用使用 计数器 来循环和使用 标志变量 来控制循环两种方法实现) 方法一使用计数器来循环 drop PROCEDURE if EXISTS p1; delimiter $ create PROCEDURE p1(in dname char(20)) begindeclare employee_id char(6);declare employee_name char(10);declare employee_salary float;declare salary_count int; # 统计记录数declare i int default 1;# 设置游标declare c_salary CURSOR forselect employees.EmployeeID, employees.Name, salary.Income - salary.Outcome as 实际收入from employees join departments on employees.DepartmentID departments.DepartmentIDjoin salary on employees.EmployeeID salary.EmployeeIDwhere departments.DepartmentName dname;select count(*) into salary_countfrom (select employees.EmployeeID, employees.Name, salary.Income - salary.Outcome as 实际收入from employees join departments on employees.DepartmentID departments.DepartmentIDjoin salary on employees.EmployeeID salary.EmployeeIDwhere departments.DepartmentName dname)a;open c_salary; # 打开游标while i salary_count doFETCH c_salary into employee_id, employee_name, employee_salary; # 读取游标select employee_id, employee_name, employee_salary; # 使用游标set i i 1;end while;close c_salary; # 关闭游标end $ delimiter ;call p1(广告部);方法二使用控制循环 drop PROCEDURE if EXISTS p1; delimiter $ create PROCEDURE p1(in dname char(20)) begindeclare employee_id char(6);declare employee_name char(10);declare employee_salary float;declare f int default 1;# 设置游标declare c_salary CURSOR forselect employees.EmployeeID, employees.Name, salary.Income - salary.Outcome as 实际收入from employees join departments on employees.DepartmentID departments.DepartmentIDjoin salary on employees.EmployeeID salary.EmployeeIDwhere departments.DepartmentName dname;# 错误处理declare exit handler for not foundset f 0;open c_salary; # 打开游标while f 1 doFETCH c_salary into employee_id, employee_name, employee_salary; # 读取游标select employee_id, employee_name, employee_salary; # 使用游标end while;close c_salary; # 关闭游标end $ delimiter ;call p1(广告部);创建存储过程将某部门的员工工资按工作年限进行调整工作年限3,提高 %53工作年限5提高 %10工作年限5提高 %15。 drop PROCEDURE if EXISTS p2; delimiter $ create PROCEDURE p2(in dname char(20)) begindeclare employee_id char(6);declare employee_WorkYear TINYINT;declare add_income float;declare f int default 1;# 设置游标declare c_salary CURSOR forselect employees.EmployeeID, employees.WorkYearfrom employees join departments on employees.DepartmentID departments.DepartmentIDjoin salary on employees.EmployeeID salary.EmployeeIDwhere departments.DepartmentName dname;# 错误处理declare exit handler for not foundset f 0;open c_salary; # 打开游标while f 1 doFETCH c_salary into employee_id, employee_WorkYear; # 读取游标if employee_WorkYear 3 then set add_income 0.05;elseif employee_WorkYear 5 thenset add_income 0.1;elseset add_income 0.15;end if;update salaryset Income Income Income * add_incomewhere salary.EmployeeID employee_id;end while;close c_salary; # 关闭游标end $ delimiter ;call p2(广告部);再次调用存储过程 p1 查看广告部员工实际收入从而验证存储过程 p2 是否正确。 注因为在存储过程 p2 提高的是 收入而不是 实际收入即支出是不变的。所以 p2 的结果不是简单的通过 p1 的结果乘上相应提升率 比如 伍容华 的支出是 88.03那么存储过程 p2 的结果是这么来的 ( 1494.59 88.03 ) ∗ ( 1 0.1 ) 1740.882 (1494.5988.03) * (10.1) 1740.882 (1494.5988.03)∗(10.1)1740.882 1740.88 − 88.03 1652.85 1740.88 - 88.03 1652.85 1740.88−88.031652.85 2.2 触发器 创建触发器当在 employees 表中插入一个员工信息时如果员工的部门编号department 表中没有则取消插入操作。 drop trigger if EXISTS tri_insertinfo; delimiter $ create TRIGGER tri_insertinfo before insert on employees for each row begindeclare a int;select count(*) into afrom departmentswhere departments.DepartmentID new.DepartmentID;if a 0 then SIGNAL SQLSTATE 12345 set message_text 部门不存在;end if;end$ delimiter ;select * from employees;select * from departments;insert into employees values(999996, 小邓在森林, 本科, 2022-02-17, 1, 5, 武汉大学, 00000000, 6);insert into employees values(999995, 小邓在森林, 本科, 2022-02-17, 1, 5, 武汉大学, 00000000, 10);select * from employees;创建触发器当在 employees 表中删除一条记录时在 salary 表中删掉该员工的记录。 drop trigger if EXISTS tri_deleteinfo; delimiter $ create TRIGGER tri_deleteinfo after delete on employees for each row begindelete from salarywhere EmployeeIDold.EmployeeID;end$ delimiter ;delete from employees where EmployeeID 999996; select * from employees; select * from salary;注因为没有在表 salary 中插入 小邓在森林 的数据我们再来试一下删除 伍容华 的数据。 delete from employees where EmployeeID 010008; select * from employees; select * from salary;可以看见 伍容华 的数据已经被删除。 创建触发器当在 employees 表中修改员工编号时在 salary 表中同时修改员工编号。 drop trigger if EXISTS tri_updateinfo; delimiter $ create TRIGGER tri_updateinfo after update on employees for each row beginupdate salaryset EmployeeID new.EmployeeIDwhere EmployeeID old.EmployeeID; end$ delimiter ;我们修改 王林 的编号将 000001 修改为 999999原数据是 select * from employees; select * from salary;修改后结果 update employeesset EmployeeID 999999where employees.EmployeeID 000001;select * from employees; select * from salary;上一篇文章【数据库——MySQL】15存储过程、存储函数和事务处理习题及讲解
http://www.hkea.cn/news/14590796/

相关文章:

  • 检察门户网站建设方案网站建设crm
  • 网站页面打不开wordpress获取当前分类下的子分类
  • 网站如何快速被绍兴酒店网站建设
  • 滨州建设网站企业建站要多少钱
  • 网站建设公司知名企业网站外贸
  • 网站字体设计规范温州企业做网站
  • 电影网站盗链怎么做芍药居网站建设公司
  • 宁波网站建设工作室白云网站 建设seo信科
  • 商城网站开发中企动力大连公司咋样
  • 齐河县工程建设监理有限公司网站青岛网站推广优化公司
  • 山东锦华建设集团有限公司网站最新火车停运通知今天
  • ps做 网站教程阿里云学生免费服务器
  • 视频网站 怎么做固安网站建设
  • 网站百度权重怎么提升上海工作网站
  • wordpress导航菜单插件佛山正规企业网站排名优化
  • 网站开发需要注意的问题做PPT素材用到的网站
  • 学网站建设能赚钱吗国家最新政策
  • 公司网站建设费用会计入账抖音带运营的执行老大
  • 怎么做下载类的网站电子商务网站建设的需求
  • 北京网站制作设计公司排名广州越秀区核酸检测点
  • 外贸是先做网站还是做阿里巴巴e特快做单子的网站
  • php企业网站cms杭州外贸网站多少钱
  • 建设一个网站要多少费用吗网站开发 协作平台
  • 南京 公司网站制作中国建设银行网站余额查询
  • 没有域名 有公网ip 建网站可以建设网站还要云服务器吗
  • 外贸公司网站建设哪家好jsp 网站开发环境
  • 网站最新发布址抚州南城网站建设
  • 一般网站建设大概需要多少钱江阴企业网站建设
  • 重庆网站建立企业网站建设长沙
  • 宁夏网站建设报价在线营销网站建设