MySQL基础作业五

server/2024/9/19 15:38:27/ 标签: mysql, 数据库

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

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;
Query OK, 0 rows affected (0.01 sec)

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

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;

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

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=new.gid;

使用mydb7 openlab库

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

mysql> delimiter //
mysql> create procedure s1()-> begin->      select name,incoming from emp_new;-> end //
Query OK, 0 rows affected (0.01 sec)mysql> delimiter ;
mysql> call s1();
+------+----------+
| name | incoming |
+------+----------+
| 张三 |     4000 |
| 李四 |     3500 |
| 王五 |     2000 |
| 赵六 |     7500 |
| 荣七 |     8500 |
| 牛八 |     7300 |
+------+----------+

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

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 //
Query OK, 0 rows affected (0.01 sec)
mysql> delimiter ;
mysql> call s2('张三',@age);
Query OK, 1 row affected (0.00 sec)mysql> select @age;
+------+
| @age |
+------+
|   35 |
+------+

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

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 //
Query OK, 0 rows affected (0.01 sec)mysql> delimiter ;
mysql> call s3(101,@avg_sal);
Query OK, 1 row affected (0.00 sec)mysql> select @avg_sal;
+----------------+
| @avg_sal       |
+----------------+
| 3166.669921875 |
+----------------+
1 row in set (0.00 sec)


http://www.ppmy.cn/server/117750.html

相关文章

Android 12系统源码_窗口管理(八)WindowConfiguration的作用

前言 在Android系统中WindowConfiguration这个类用于管理与窗口相关的设置,该类存储了当前窗口的显示区域、屏幕的旋转方向、窗口模式等参数,应用程序通过该类提供的信息可以更好的适配不同的屏幕布局和窗口环境,以提高用户体验。 一、类定…

在线查看 Android 系统源代码 Git repositories on android

在线查看 Android 系统源代码 Git repositories on android 1. Git repositories on android1.1. Android Make Build System1.2. Android Open Source Project Code Review References 1. Git repositories on android https://android.googlesource.com/ 1.1. Android Make …

【Redis】Redis 典型应用 - 分布式锁原理与实现

目录 Redis 典型应⽤ - 分布式锁什么是分布式锁分布式锁的基础实现引⼊过期时间引⼊校验 id引⼊ lua引⼊ watch dog (看⻔狗)引⼊ Redlock 算法其他功能 Redis 典型应⽤ - 分布式锁 什么是分布式锁 在⼀个分布式的系统中, 也会涉及到多个节点访问同⼀个公共资源的…

Go语言错误处理详解

Go语言以其简洁、高效和并发能力著称。在实际开发中,错误处理是一个不可避免且至关重要的部分。本文将深入探讨Go语言中的错误处理机制,涵盖其原理、使用方法、最佳实践,并提供丰富的代码示例和中文注释。 一、错误处理的基本概念 在Go语言…

【笔记】进制转换

文章目录 一、任意进制转十进制1、整数转化成十进制(1)二进制转十进制(2)八进制转十进制 2、小数转化成十进制(1)二进制转十进制(2)八进制转十进制 3、代码1、整数转化成十进制2、小…

12. DataLoader的基本使用

DataLoader的基本使用 1. 为什么要使用DataLoader DataLoader对创建好的DataSet的样本取样进行了集成操作,非常方便对于后续网络训练、测试的数据集的选择和使用 DataLoader可以集成了数据批量加载的方法,可以使用 batch_size 设置批量大小&#xff0c…

Java和西门子S7-1200通讯调试记录

这是很久以前做的一个项目,工业现场一个agv,主要作用的清扫摇床(一种选矿设备),选用的S7-1200的CPU。工作原理是agv上面放一个机械臂,机械臂上面装一个扫把,到固定位置以后,执行清扫…

四款音频剪辑软件免费使用,你更pick哪一个?

视频剪辑知随着软件的不断更新,入门门槛和操作难度也随之变得越来越低,但是依然有不少人不知道剪辑视频要用什么工具,作为一个视频剪辑爱好者,我尝试过不少编辑软件,今天就来跟大家分享一下四款视频剪辑软件在实际使用…

websocket 和sip 在协议层面有哪些区别,为什么要各自这样设置协议

WebSocket 和 SIP(Session Initiation Protocol)在协议层面有显著区别,因为它们各自的设计目标和用途不同。让我们从协议的定义、工作方式和用途来讨论这些区别: 1. 协议定义与用途 WebSocket: WebSocket 是一种通信协议,旨在通过单个 TCP 连接实现全双工通信。它用于在客…

【Django】Django Class-Based Views (CBV) 与 DRF APIView 的区别解析

Django Class-Based Views (CBV) 与 DRF APIView 的区别解析 在 Django 开发中,基于类的视图(Class-Based Views, CBV)是实现可重用性和代码结构化的利器。而 Django REST Framework (DRF) 提供的 APIView 是针对 API 开发的扩展。 一、CBV …

线结构光测量系统标定--导轨

光平面标定原理可查看之前的博文《光平面标定》,光条中心提取可参考线结构光专栏光条中心提取系列的文章,相机标定参考相机标定专栏中的博文。(欢迎进Q群交流:874653199) 线结构光测量系统(指一个线结构光传感器与一个…

基于Python实现一个庆祝国庆节的小程序

功能: 添加互动功能:允许用户选择不同的祝福语或者查询不同的国庆节信息。动态背景音乐:播放国庆节相关的背景音乐。增加节日小测验:提供一些关于国庆节的趣味小测验,让用户参与。增强图形用户界面 (GUI):…

Java封装(面向对象)

这个是大三来的时候刚开始又捡起来了java这个语言,以前是开设过这个课程的,但是上课都没哈好听讲,现在又开始学习java类的。 首先附上黑马程序员的一张听课截图吧 我就拿我在黑马程序员的例子上给自己的一个讲解吧 首先是javabean类 pack…

Rust 控制流

文章目录 发现宝藏1. if 表达式1.1 基本用法1.2 带有 else if 的多重条件1.3 在 let 语句中使用 if1.4 类型不匹配的错误 2. 循环结构2.1 使用 loop 进行无限循环2.2 使用 break 从循环中退出2.3 while 循环2.4 for 循环遍历集合2.5 使用 Range 进行迭代 总结 发现宝藏 前些天…

外包干了半年,快要废了。。。

先说一下自己的情况,普通本科,在外包干了半年多的功能测试,这几年因为大环境不好,我整个人心惊胆战的,怕自己卷铺盖走人了,我感觉自己不能够在这样蹉跎下去了,长时间呆在一个舒适的环境真的会让…

成功激活mac idea 记录

按照文章:Mac 下载并激活IDEA_mac idea下载-CSDN博客,可以成功激活mac idea,做个记录。

C#使用HttpWebRequest下载文件

public static bool HttpDownloadFile(string downloadUrl, string localPath, log4net.ILog log) { bool bFlagDownloadFile false; //log.Debug("HttpDownloadFile--准备以HTTP的方式下载文件,url:[" downloadUrl &…

C#异常数据捕获(2)

/* exception 例子 try { //尝试运行的代码 可能出错的代码 //int num int .Parse("abc"); int num1 int.Parse("0"); int num 10 / num1; } //cat…

WebRTC服务器搭建

坑比Npm 记录一次18.04安装nodeJs的记录 apt-get install npm版本太低 需要下个16的版本 不然就真的特么 死锁 1.下载版本 #wget https://nodejs.org/dist/v16.0.0/node-v16.0.0-linux-x64.tar.xz#别用这个憨批地址,访问不了 wget https://npmmirror.com/mirrors…

android 14.0 Launcher3长按拖拽时,获取当前是哪一屏,获取当前多少个应用图标

1.概述 在14.0系统rom定制化开发手机项目中,在Launcher3中专门适配老年机的时候,这时客户提出要求,如果最后一屏未满时,不让拖拽到后面一屏的空屏中这样就需要获取当前是哪一屏,并且要知道当前有多少个Item,总共一屏最多多少个item 所以就需要从Workspace.java入手,来分…