MySQL第五次作业

ops/2025/2/10 23:04:14/

根据图片内容完成作业

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://www.ppmy.cn/ops/157377.html

相关文章

Apache SeaTunnel 整体架构运行原理

概述 SeaTunnel 缘起 数据集成在现代企业的数据治理和决策支持中扮演着至关重要的角色。随着数据源的多样化和数据量的迅速增长及业务需求的快速变化,企业需要具备强大的数据集成能力来高效地处理数据。SeaTunnel通过其高度可扩展和灵活的架构,帮助企业…

机器学习数学基础:18.向量组及其线性组合

向量组与线性表示:案例与教程详解 一、基础概念 (一)向量组 向量组是若干同位数列向量组成的集合。比如在平面直角坐标系中,向量组 { α ⃗ 1 [ 1 0 ] , α ⃗ 2 [ 0 1 ] } \{\vec{\alpha}_1 \ \begin{bmatrix}1\\0\end{bma…

十三. Redis 应用问题和解决方案思想

十三. Redis 应用问题和解决方案思想 文章目录 十三. Redis 应用问题和解决方案思想1. 缓存穿透2. 缓存击穿3. 缓存雪崩4. 分布式锁4.1 分布式锁主流实现方案:4.2 Redis 实现分布式锁-基本实现4.3 Redis 实现分布式锁-Java代码实现4.4 实例:优化-设置锁的…

AI软件外包需要注意什么 外包开发AI软件的关键因素是什么 如何选择AI外包开发语言

1. 定义目标与需求 首先,要明确你希望AI智能体做什么。是自动化任务、数据分析、自然语言处理,还是其他功能?明确目标可以帮助你选择合适的技术和方法。 2. 选择开发平台与工具 开发AI智能体的软件时,你需要选择适合的编程语言、…

22.2、Apache安全分析与增强

目录 Apache Web安全分析与增强 - Apache Web概述Apache Web安全分析与增强 - Apache Web安全威胁Apache Web安全机制Apache Web安全增强 Apache Web安全分析与增强 - Apache Web概述 阿帕奇是一个用于搭建WEB服务器的应用程序,它是开源的,它的配置文件…

DeepSeek本地安装+集成VScode使用

1 本地安装 我们需要用到两个神器: 一个叫做Ollama,这是一个可以在本地运行和管理大模型的软件。 另一个叫做Page Assist,这是个浏览器插件,提供本地大模型的图形化管理和对话界面。 (1)下载Ollama&…

Python调取本地MongoDB招投标数据库,并结合Ollama部署的DeepSeek-R1-8B模型来制作招投标垂直领域模型

根据你的需求,以下是使用Python调取本地MongoDB招投标数据库,并结合Ollama部署的DeepSeek-R1-8B模型来制作招投标垂直领域模型的步骤: 安装PyMongo 首先,确保你已经安装了PyMongo库,用于Python与MongoDB的交互。如果未…

设计模式Python版 享元模式

文章目录 前言一、享元模式二、享元模式示例 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式:关注类和对象之间的组合&…