MYSQL---TEST5(Trigger触发器Procedure存储过程综合练习)

触发器Trigger

数据库mydb16_trigger创建
表的创建
goods

create table goods(
gid char(8) primary key,  #商品号
name varchar(10),           #商品名
price decimal(8,2),          #价格
num int;)                    #数量

orders

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);                                           #订单时间

插入数据

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

要求及sql代码
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 ;

delimiter:设置分隔符delimiter ////设置为分隔符,delimiter ;;重新设置为分隔符

测试
insert into orders value(1,'D0001','计算器',28.00,10,now());

原数值为20,订单10个之后,还剩10个
在这里插入图片描述

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 ;

测试
delete from orders where gid='D0001';

取消任务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 ;

测试
在这里插入图片描述

存储过程Procedure

数据库mydb7_openlab创建
表的创建
Table emp_new
在这里插入图片描述
要求及其sql代码
1、创建提取emp_new表所有员工姓名和工资的存储过程s1

delimiter //
create procedure s1()
begin
          select name '姓名',incoming '工资' from emp_new;
end //
delimiter ;

测试

](https://i-blog.csdnimg.cn/direct/1f7dbc3168534e97b8572e593e49dce6.png)

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

delimiter //
create procedure s2(in e_name varchar(11) ,out e_age int)
begin
select age into e_age from emp_new where name=e_name;
end //
delimiter ;

测试
在这里插入图片描述

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

elimiter //
create procedure s3(in in_dept int,out avg_sal float)
begin
select avg(incoming) from   emp_new where dept2=in_dept group by dept2;
end //
delimiter ;

测试
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/909044.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 完整教程:从入门到精通

MySQL 完整教程:从入门到精通 MySQL 是一个广泛使用的关系型数据库管理系统,它使用结构化查询语言 (SQL) 来管理和操作数据。本文将详细介绍 MySQL 的基本概念、安装与配置、常用 SQL 语法、数据表的创建与管理、索引、视图、存储过程、触发器等高级特性…

winfrom控制应用程式不能双开

功能:控制winform应用程式不能双开 //应用程式不能双开bool isAppRunning false;Mutex mutex new Mutex(true, "MyApp", out isAppRunning);if (!isAppRunning){MessageBox.Show("程序已运行,不能再次打开!");Environm…

uniapp:启动界面关闭时长控制

代码控制关闭启动界面 App启动后不会自动关闭启动界面,需要在代码中调用plus.navigator.closeSplashscreen关闭启动界面。"app-plus" : {"splashscreen" : {"alwaysShowBeforeRender" : false,"autoclose" : false,}, }很多…

从数据提取到管理:TextIn平台的全面解析与产品体验

一、引言 在现代信息时代,文档解析和管理已经成为企业和开发者不可或缺的工具。TextIn是合合信息旗下的一款智能文档处理平台,为开发者和企业提供高效、精准的文档解析工具,帮助用户轻松应对各种复杂的文档处理需求。本文将深入探讨TextIn的…

Spring Boot技术在校园社团管理中的高效应用

3系统分析 3.1可行性分析 通过对本校园社团信息管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本校园社团信息管理系统采用SSM框架,JAVA作…

软件工程(软考高频)

一、软件工程概述 1.软件的基本生命周期 2.软件过程 二、软件开发方法 三、 软件开发模型 1.瀑布模型和V模型 2.原型模型和螺旋模型 3. 增量模型 4.喷泉模型 5.统一过程UP模型 6.敏捷方法 敏捷方法的开发模型 四、需求分析 1.基本概念 2.需求的分类 3.需求分析的工具 (1)数…

Spring整合Mybatis过程

配置文件 springConfig --> [jdbcConfig mybatisConfig] jdbc配置文件进行基本的数据库连接池配置 mybatis配置文件进行SqlSessionFactory Bean 和 MapperScannerConfigurer Bean的创建 在Spring容器启动时,系统会根据配置创建并初始化所有MyBatis所需的Bean…

ML2001-1 机器学习/深度学习 Introduction of Machine / Deep Learning

图片说明来自李宏毅老师视频的学习笔记,如有侵权,请通知下架 影片参考 【李宏毅】3.第一节 - (上) - 机器学习基本概念简介_哔哩哔哩_bilibili 1. 机器学习的概念与任务类型 概念:机器学习近似于寻找函数,用于处理不同类型的任…

【Java多线程】:理解线程创建、特性及后台进程

📃个人主页:island1314 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 一、背景 -- 进程与线程🚀 🔥 多线程是提升程序性能非常…

Matlab实现海马优化算法(SHO)求解路径规划问题

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 海马优化算法(SHO)是一种受自然界海马行为启发的优化算法,它通过模拟海马在寻找食物和配偶时的探索、跟踪和聚集行为来搜索最优解。SHO因其高效的全局搜索能力和局部搜索能力而…

【初阶数据结构与算法】复杂度分析练习之轮转数组(多种方法)

文章目录 复杂度练习之轮转数组方法1方法2方法3 总结 复杂度练习之轮转数组 题目链接:https://leetcode.cn/problems/rotate-array/description/    为什么我们把这道题作为复杂度的练习题呢?是因为我们以后做题都会涉及到复杂度的计算,我…

哲学家就餐问题(Java实现信号量和PV操作)

哲学家就餐是经典的PV操作。 一个哲学家同时拿起左边的筷子和右边的筷子进行就餐,每一个哲学家都会等待右边的筷子,具备了死锁问题之一的循环等待。 基础的哲学家就餐问题代码 在Java中,Semaphore 是一个用于控制对某个资源的访问的同步工具…

mutable用法

mutable 关键字用于允许类的某个成员变量在 const 成员函数中被修改。通常,const 成员函数不能改变对象的任何成员变量,但将成员变量声明为 mutable 可以例外 class Hero { public:Hero():m_Hp(0), m_getHpCounter(0){}int getHp() const {m_getHpCounte…

C++ | Leetcode C++题解之第537题复数乘法

题目&#xff1a; 题解&#xff1a; class Solution { public:string complexNumberMultiply(string num1, string num2) {regex re("\\|i"); vector<string> complex1(sregex_token_iterator(num1.begin(), num1.end(), re, -1), std::sregex_token_iterator…

告别传统营销,HubSpot AI分析工具带你玩转新潮流

你们知道吗&#xff1f;现在的人工智能&#xff08;AI&#xff09;技术可是越来越厉害了&#xff0c;它简直就是我们营销人员的超级外挂&#xff01;有了AI分析工具&#xff0c;我们不仅能优化营销效果&#xff0c;还能大大提升工作效率。那么&#xff0c;具体是怎么一回事呢&a…

Docker打包自己项目推到Docker hub仓库(windows10)

一、启用Hyper-V和容器特性 1.应用和功能 2.点击程序和功能 3.启用或关闭Windows功能 4.开启Hyper-V 和 容器特性 记得重启生效&#xff01;&#xff01;&#xff01; 二、安装WSL2&#xff1a;写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/143057041 三…

如何删除react项目的默认图标,使在浏览器中不显示默认图标favicon.ico

要删除 React 项目的默认图标&#xff0c;使在浏览器中不显示默认图标favicon.ico&#xff0c;其实有两种方法&#xff1a; 方法一 方法要点&#xff1a;删除掉 public 目录下的 favicon.ico 文件&#xff0c;再用浏览器访问时&#xff0c;如果加载不到图标文件&#xff0c;就…

软件测试:测试用例详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、通用测试用例八要素   1、用例编号&#xff1b;    2、测试项目&#xff1b;   3、测试标题&#xff1b; 4、重要级别&#xff1b;    5、预置…

支付幂等性的实现中,通过“一锁、二判、三更新”

在这个支付幂等性的实现中&#xff0c;通过“一锁、二判、三更新”严格控制了支付链接生成接口的幂等性&#xff0c;确保同一业务单号在同一时间只会生成一个有效的支付链接&#xff0c;避免重复支付或其他意外操作。 Facade DistributeLock(keyExpression "#payCreate…

Charles抓包_Android

1.下载地址 2.破解方法 3.安卓调试办法 查看官方文档&#xff0c;Android N之后抓包要声明App可用User目录下的CA证书 3.1.在Proxy下进行以下设置&#xff08;路径Proxy->Proxy Settings&#xff09; 3.1.1.不抓包Windows&#xff0c;即不勾选此项&#xff0c;免得打输出不…