欧鹏 数据库 第五次作业

第五次作业题目

一,触发器

1)建立两个表:good(商品表),orders(订单表)

create database db_mysql_7;#(库名自拟)
use db_mysql_7;
create table goods (gid char(8) primary key , name varchar(10) , price decimal(8,2) , num int);
create table orders (old int primary key auto_increment , gid char(10) not null , name varchar(10) , price decimal(8,2) , onum int , otime date);

二,在商品表中导入记录

insert into goods values ('A0001' , '橡皮' , 2.5 , 100), ('B0001' , '小楷本' , 2.8 , 210), ('C0001' , '铅笔' , 1.2 , 120), ('D0001' , '计算器' , 28 , 20);

1)建立触发器,订单中增加订单数量后,商品表数量同步减少对应的商品订单出单数量,并测试
2)建立触发器,实现功能:客户取消订单,恢复商品表对应商品的数量
3)建立触发器,实现功能:客户修改订单,商品表对应商品数量同步更新

三,储存过程

1)使用db_mysql_7库
2)建立提取emp_new表所有员工姓名和工资的储存过程s1
3)建立储存过程s2,实现输入员工姓名后返回员工的年龄
4)建立储存过程s3, 有两个参数,传入部门号,返回该部门的平均工资

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

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

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

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

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

delimiter $$
create trigger trg_after_order_update
after update on orders
for each row
begin
	if old.onum <> new.onum then
		update goods set num = num + (old.onum -new.onum) where gid =new.gid;
	end if;
end$$
delimiter ;

1)使用db_mysql_7库

use db_mysql_7;

2)建立提取emp_new表所有员工姓名和工资的储存过程s1

delimiter $$
create procedure s1()
begin
	select name , salary from emp_new;
end$$
delimiter ;
# 3)建立储存过程s2,实现输入员工姓名后返回员工的年龄
```mysql
delimiter $$
create procedure s2(in emp_name varchar(255))
begin
	select age from emp_new where name = emp_name;
end$$
delimiter ;

4)建立储存过程s3, 有两个参数,传入部门号,返回该部门的平均工资

delimiter $$
create procedure s3(in dept_id int)
begin
	select avg(salary) as avg_salary from emp_new where dept_id = dept_id;
end$$
delimiter ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星鬼123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值