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

MySQL第五次作业

根据图片内容完成作业

1.建表

(1)建立两个表:goods(商品表)、orders(订单表)

mysql> create table goods(
    -> gid char(8) primary key,
    -> name varchar(10),
    -> price decimal(8,2),
    -> num int);

mysql> create table orders(
    -> oid int primary key auto_increment,
    -> gid char(10) not null,
    -> name varchar(10),
    -> price decimal(8,2),
    -> onum int,
    -> otime date); 

 (2)在商品表中导入商品记录

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

2.建立触发器

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

mysql> create trigger order_after_insert_trigger
    -> after insert on orders for each row
    -> update goods set num=goods.num-new.onum where gid=new.gid;

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

mysql> create trigger order_after_delete_trigger
    -> after delete on orders for each row
    -> update goods set num=num+old.onum where gid=old.gid; 

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

mysql> create trigger order_after_update_trigger
    -> after update on orders for each row
    -> update goods set num=num+(old.onum-new.onum) where gid=old.gid;

 3.存储过程

(1)使用mydb7 openlab,创建提取emp_new表所有员工姓名和工资的存储过程proc01

mysql> delimiter //
mysql> create procedure proc01()
    -> begin
    ->          select name,incoming from emp_new;
    -> end //

mysql> delimiter ;
mysql> call proc01();

 (2)创建存储过程proc02,实现输入员工姓名后返回员工的年龄

mysql> delimiter //
mysql> create procedure proc02(in in_name varchar(10), out out_age int)
    -> begin
    ->          select age into out_age from emp_new where name=in_name;
    -> end //

mysql> delimiter ;
mysql> call proc02('张三',@out_age);

mysql> select @out_age;

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

mysql> delimiter //
mysql> create procedure proc03(in in_dept2 int, out out_avg float)
    -> begin
    ->          select avg(incoming) into out_avg from emp_new where in_dept2=dept2;
    -> end //

mysql> delimiter ;
mysql> call proc03(101,@out_avg);

mysql> select @out_avg;

相关文章:

  • HTTP 请求头、响应头常见字段分析
  • git,bash - 例子整理
  • Calico网络组件本地部署支持IPv6(Kubernetes)
  • deepseek和chatgpt对比
  • 移远通信边缘计算模组成功运行DeepSeek模型,以领先的工程能力加速端侧AI落地
  • DeepSeek教unity------MessagePack-01
  • vue纯静态实现 视频转GIF 功能(附源码)
  • HARCT 2025 分论坛10:Intelligent Medical Robotics智能医疗机器人
  • 详解df -h命令
  • BERT文本分类(PyTorch和Transformers)畅用七个模型架构
  • win11 MBR 启动 如何把我的硬盘改 GPT win11 的 UEFI 启动
  • Springboot3与openApi
  • Golang 语言的内存管理
  • android 安装第三方apk自动赋予运行时权限
  • 二次封装axios解决异步通信痛点
  • Electron 全面解析:跨平台桌面应用开发指南
  • Web前端开发--HTML
  • css: 针对属性left/right/top/bottom为啥设置transition动画不起作用
  • Mysql中使用sql语句生成雪花算法Id
  • Linux内核模块参数与性能优化:__read_mostly属性的深度剖析
  • 为什么越来越多景区,把C位留给了书店?
  • “老中青少”四代同堂,季春艳携锡剧《玲珑女》冲击梅花奖
  • 多条跨境铁路加速推进,谁是下一个“超级枢纽”?
  • 乌总统:若与普京会谈,全面停火和交换战俘是主要议题
  • 微软将在全球裁员6000人,目标之一为减少管理层
  • 京东CEO许冉:外卖日单量接近2000万单,看到外卖对平台拉动和转化效应