MySql 触发器、存储器练习

一: 触发器

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

查看数据库:mysql> show databases;

使用数据库:mysql> use mydb16_trigger;

创建goods表:

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

查看表结构:mysql> desc goods;

创建orders表:

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

查看表结构:mysql> desc orders;

2、插入数据

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

查看数据:mysql> select * from goods;

3、建立触发器

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

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

mysql> insert into orders(gid,name,price,onum,otime) values('A0001','橡皮',2.5,20,now());


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

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

mysql> delete from orders where gid='A0001';


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

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

mysql> update orders set onum=70 where gid='A0001';

二:存储过程

1、使用mydb7 openlab库

使用数据库:mysql> use mydb7_openlab;

查看表:mysql> show tables;

查看emp_new表

查看dept表

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

修改结束符号:mysql> delimiter //

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

mysql> delimiter ;

调用:call s1();

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

mysql> delimiter //

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

mysql> delimiter ;

mysql> call s2('牛八',@age);

mysql> select * from emp_new;

mysql> select  @age;

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

mysql> delimiter //

mysql> create procedure s3(in in_dept int, out avg_sal float)
    -> begin
    ->     select avg(incoming) into avg_sal from emp_new where dept2=in_dept;
    -> end //

mysql> delimiter ;

mysql> call s3(101,@avg_sal);

mysql> select @avg_sal;

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

海外发稿:打造希腊媒体宣发新局面

随着全球经济一体化的不断深入,企业对于海外市场的拓展需求日益迫切。在这个过程中,媒体宣发作为一种有效的市场推广手段,已经成为企业出海的重要策略之一。希腊,作为欧洲的重要经济体,拥有丰富的文化底蕴和众多的历史…

自动IP地址vs固定IP地址:哪个更快?深度解析与比较

在数字化时代,网络连接已成为我们日常生活和工作中不可或缺的一部分。而在网络配置中,IP地址的选择——无论是自动获取还是固定设置,都是影响网络性能和管理的关键因素之一。许多人常常疑惑:自动IP地址和固定IP地址哪个快一点&…

Linux中如何用ida调试fork后的子进程

原文链接 > https://redqx.github.io/linux/2024/07/24/linux-debugfork.html 本文的一些图片引用可能有一些问题, 比如数据不对劲,但无伤大雅 自己懒得粘贴图片了 环境: wsl-kali-2024 ida-7.7 插件: Lazy_ida, 还有一个什么插件不知道什么名字, 可以把汇编转字节码 …

基于PaddleClas的人物年龄分类项目

目录 一、任务概述 二、算法研发 2.1 下载数据集 2.2 数据集预处理 2.3 安装PaddleClas套件 2.4 算法训练 2.5 静态图导出 2.6 静态图推理 三、小结 一、任务概述 最近遇到个需求,需要将图像中的人物区分为成人和小孩,这是一个典型的二分类问题…

DLMS/COSEM中公开密钥算法的使用_椭圆曲线加密法

1.概述 椭圆曲线密码涉及有限域上的椭圆曲线上的算术运算。椭圆曲线可以定义在任何数字域上(实数、整数、复数),但在密码学中,椭圆曲线最常用于有限素数域。 素数域上的椭圆曲线由一组实数(x, y)组成,满足以下等式: 方程的所有解的集合构成…

7月23日JavaSE学习笔记

异常: 程序中一些程序处理不了的特殊情况 异常类 Exception 继承自 Throwable 类(可抛出的) Throwable继承树 Error:错误/事故,Java程序无法处理,如 OOM内存溢出错误、内存泄漏...会导出程序崩溃 常见的…

结构拼图的艺术——组合模式(Python实现)

大家好,今天我们继续来讲结构型设计模式,上一期我们介绍了桥接模式,帮助大家理解了如何通过分离抽象部分和实现部分来实现代码的解耦。 今天,我们将介绍另一个非常实用的设计模式——组合模式,这个模式特别适合用于处…

Vue实现简单小案例

一、创建文件夹 二、引用vue.js <script src"../js/vue.js"></script> 三、准备一个容器 <div id"app"><h1>Hello,{{name}}</h1> </div> 四、创建实例 <script>new Vue({el:"#app", //el用于指…

Godot入门 03世界构建1.0版

在game场景&#xff0c;删除StaticBody2D节点&#xff0c;添加TileMap节点 添加TileSet图块集 添加TileSet源 拖动图片到图块&#xff0c;自动创建图块 使用橡皮擦擦除。取消橡皮擦后按住Shift创建大型图块。 进入选择模式&#xff0c;TileMap选择绘制&#xff0c;选中图块后在…

60V_20A超大电流LED照明车灯舞台灯同步降压芯片,驱动效率达99%并具有PWM极佳调光功能

简介 PC1226 是一款同步降压驱动控制芯片&#xff0c;用于驱动大功率 LED。芯片工作电压范围 7~60V&#xff0c;能够稳定输出高达数十安培的驱动电流&#xff0c;且有着极高的转换效率。 PC1226 集成了 PMOS 驱动模块&#xff0c;用于驱动高侧的 PMOS 功率 MOS&#xff0c;与…

【NPU 系列专栏 2 -- NVIDIA 的 H100 和 H200 是什么?】

请阅读【嵌入式及芯片开发学必备专栏】 文章目录 NVIDIA H100 和 H200 芯片NVIDIA H100 芯片简介NVIDIA H100 主要特点NVIDIA H100 应用场景NVIDIA H100 使用举例NVIDIA H200 芯片简介NVIDIA H200 主要特点NVIDIA H200 应用场景NVIDIA H200 使用举例Summary NVIDIA H100 和 H20…

甲方怒斥!!!为什么媒体不按原稿发布?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 前几天执行了一个媒体邀约的项目&#xff0c;邀约媒体参会&#xff0c;以及活动现场一切都很顺利&#xff0c;稿件同步的很晚&#xff0c;但还是让几个媒体连夜进行了刊登报道&#xff0…

AutoMySQLBackup execution.. Backup failed Docker部署mysql 自动备份失败!!

摘要&#xff1a; Docker容器部署的mysql5.7版本遇到使用AutoMYSQLBackup备份失败了&#xff0c;反复修改automysqlbackup.conf也不起效。这里推荐一种新的办法绕开老路子直接备份。 目录 一、环境介绍 二、AutoMYSQLBackup 三、问题描述 四、解决思路 4.1第一种解决思…

用cmake创建一个c++工程,调用c语言函数打印“c hello!”。

要使用CMake创建一个C工程&#xff0c;并在其中调用C语言函数以打印“C hello!”&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 项目目录结构 首先&#xff0c;确保你的项目目录结构如下&#xff1a; CPlusPlusWithCLibrary ├── CMakeLists.txt └── src├── m…

C++的map和set介绍

系列文章目录 二叉树搜索树 map和set习题 文章目录 系列文章目录前言一、关联式容器键值对二、树形结构的关联式容器2.1 set2.1.1 set的介绍2.1.3 set的使用删除节点find的不同效率count举例lower_bound 和 upper_bound 2.2 multiset2.2.1 区别&#xff1a;find查找erase删除e…

【深度学习】大模型GLM-4-9B Chat ,微调与部署(3) TensorRT-LLM、TensorRT量化加速、Triton部署

文章目录 获取TensorRT-LLM代码&#xff1a;构建docker镜像并安装TensorRT-LLM&#xff1a;运行docker镜像&#xff1a;安装依赖魔改下部分package代码&#xff1a;量化&#xff1a;构建图&#xff1a;全局参数插件配置常用配置参数 测试推理是否可以代码推理CLI推理 性能测试小…

FFmpeg音视频流媒体的顶级项目

搞音视频、流媒体的圈子,没法躲开ffmpeg这个神级项目。 FFmpeg 是一个功能强大且广泛使用的多媒体处理工具。FFmpeg 具备众多出色的特性。它支持多种音频和视频格式的转换,能轻松将一种格式的文件转换为另一种,满足不同设备和应用的需求。不仅如此,它还可以进行视频的裁剪、…

你敢信!IP也能实现https

IP作为属于底层基础网络&#xff0c;在访问网站时IP是不可避免要使用到的。对于个别单位而言IP并不需要绑定域名&#xff0c;在进行互联网信息交互的过程中不可避免的会需要实现加密访问&#xff0c;在加密时使用符合IP的专用SSL证书就显得格外重要&#xff0c;毕竟在实现网络信…

SpringBoot入门:如何新建SpringBoot项目(保姆级教程)

在本文中&#xff0c;我们将演示如何新建一个基本的 Spring Boot 项目。写这篇文章的时候我还是很惊讶的&#xff0c;因为我发现有些java的初学者&#xff0c;甚至工作10年的老员工居然并不会新建一个SpringBoot项目&#xff0c;所以特别出了一篇文章来教大家新建一个SpringBoo…

六、1 TIM输出比较、PWM

1、英文缩写 OC&#xff08;Output Compare&#xff09;输出比较 IC&#xff08;Input Capture&#xff09;输入捕获 CC&#xff08;Capture/Compare&#xff09;输入捕获和输出比较单元 CNT计数器 CCR&#xff08;Capture/Compare Register&#xff09;捕获/比较寄存器 …