sql存储过程和触发器练习

1.触发器

1.1建立触发器,订单表中增加订单数量后,商品表商品数量同步减少对应的商品订单出数量,并测试

delimiter //
create trigger orders_insert_trigger after insert
on orders for each row
begin
          update goods set num=num-new.onum where gid=new.gid;
end //
delimiter ;

1.2建立触发器,实现功能:客户取消订单,恢复商品表对应商品的数量

delimiter //
create trigger orders_delete_trigger after delete
on orders for each row
begin
          update goods set num=num+old.onum where gid=old.gid;
end //
delimiter ;

 

1.3建立触发器,实现功能:客户修改订单,商品表对应商品数量同步更新

delimiter //
create trigger orders_update_trigger after update
on orders for each row
begin
           update goods set num=num+(old.onum-new.onum) where gid=new.gid;
end //
delimiter ;

 

2.存储过程

2.1 使用mydb7_openlab库

use mydb7_openlab;

2.2 创建提取emp_new表所有员工姓名和工资的存储过程s1

delimiter //
create procedure s1()
begin
         select name,incoming from emp_new;
end //
delimiter ;

2.3 创建存储过程s2,实现输入员工姓名后返回员工的年龄

delimiter //
create procedure s2(in insert_name varchar(11))
begin
         select name,age from emp_new where name=insert_name;
end //
delimiter ;

2.4 创建一个存储过程s3,有2个参数,传入部门号,返回该部门的平均工资

delimiter //
create procedure s3(in insert_dept int,out avg_age float)
begin
        select round(avg(incoming),2) from emp_new where dept2=insert_dept group by dept2;
end //
delimiter ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值