MySQL数据库练习(5)

1.建库建表

# 使用数据库
use 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);

结果如下:

2.插入数据

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

结果如下:

3.要求

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

# 建立触发器
create trigger orders_after_insert_trigger after
insert on orders for each row
update goods set num=num - new.onum
where gid=new.gid;# 用户下单,插入数据
insert into orders(gid,name,price,onum,otime) value('C0001','铅笔',1.2,80,now());

结果如下:

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

# 建立触发器
create trigger orders_after_delete_trigger after
delete on orders for each row
update goods set num=num+old.onum
where gid=old.gid;# 删除之前下单
delete from orders where gid = 'C0001';

结果如下:

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

# 建立触发器新
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;# 用户下单
insert into orders(gid,name,price,onum,otime) value('A0001','橡皮',2.5,20,now());# 用户修改数量
update orders set onum=35 where gid='A0001';

结果如下:

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

# 切换数据库
use mydb7_openlab;# 创建存储过程s1
delimiter //
create procedure s1()
beginselect name,incoming from emp_new;
end //delimiter ;# 调用
call s1();

结果如下:

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

# 查表结构获取变量类型
desc emp_new;delimiter //
create procedure s2(in in_name varchar(11),out out_age int)
beginselect age into out_age from emp_new where name=in_name;
end //
delimiter ;# 调用
select * from emp_new;# 查看数据
call s2("王五",@age);
select @age;

结果如下:

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

delimiter //
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 //
delimiter ;# 调用
call s3(101,@avg_sal);

结果如下:

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

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

相关文章

QtCreator和QtDesignStudio最佳实践

一、QTC和QDS工作流概述 很多初学者对 QDS(Qt Design Studio) 和 QTC(Qt Creator)如何配合经常存有疑问,本文介绍具体的工作流程。 工作流程 1.产品设计:通过PS、Figma、XD等专业工具设计页面视觉和原型。 2.QDS 原型制作:导入设计源文件、…

50.TFT_LCD液晶屏驱动设计与验证(3)

(1)数据生成模块Verilog代码: module data_gen(input [9:0] hang ,input [9:0] lie ,input clk_33M ,input reset_n ,output reg [23:0] data ); //定义最大行、列parameter …

数据结构篇4—递归实现二叉树基础结构

文章目录 前言🚩1、树?2、树的相关概念3、树的结构表示4、二叉树🚀、概念和结构🎁、特殊二叉树 5、二叉树常用性质6、二叉树的存储结构🧩、顺序存储结构🎨、链式存储结构 7、二叉树顺序结构的实现----堆8、…

m4a怎么转mp3?m4a转mp3的几种方法教程

m4a怎么转mp3?M4A音频格式的全称MPEG-4 Audio,是一种音频压缩格式。这种格式以其卓越的音质和相对较小的文件大小而广受欢迎,尤其是在音乐存储、在线流媒体以及音频编辑等领域。M4A格式被广泛应用于苹果公司的产品中,如iPhone、iP…

MDIO读写测试实验

目录 一.以太网 1.1以太网概述 1.2以太网的分类 1.3以太网的接口类型 1.4RJ45接口定义 1.5以太网连接图 二.MDIO接口 2.1MDIO概述 2.2MDIO接口连接图 2.3MDIO接口的帧格式 2.4MDIO 接口读时序图 2.5MDIO 接口写时序图 三.以太网 PHY 芯片(YT8531&#x…

SpringBoot中使用监听器

1.定义一个事件 /*** 定义事件* author hrui* date 2024/7/25 12:46*/ public class CustomEvent extends ApplicationEvent {private String message;public CustomEvent(Object source, String message) {super(source);this.message message;}public String getMessage() …

打包Linux的deb包

打包Linux的deb包 需事先准备 软件打包依赖 1. sudo apt update 2.sudo apt-get install dh-make build-essential devscripts debhelper 3.所需打包的源码包 准备打包目录 创建一个构建 deb 包的目录,目录以 包名-版本号 命名,如 testtest-pc:~/桌面$ …

PostgreSQL 数据库 安装

1、官网下载 起源与发展:PostgreSQL最初起源于加州大学伯克利分校的Postgres项目,该项目始于1986年,并一直演进到1994年。在1995年,Postgres项目增加了SQL翻译程序,并更名为Postgres95。随后,在1996年&…

【教程向】pyside2环境搭建以及快速上手

一、环境搭建 下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 推荐使用的版本: Anaconda3-2020.02-Windows-x86_64.exe python3.6以上,好像最新的python也不太支持,所以推荐给的这个版本 安装pyside2 pip i…

鸿蒙应用框架开发【多HAP】程序框架

多HAP 介绍 本示例展示多HAP开发,简单介绍了多HAP的使用场景,应用包含了一个entry HAP和两个feature HAP,两个feature HAP分别提供了音频和视频播放组件,entry中使用了音频和视频播放组件。 三个模块需要安装三个hap包&#xff…

昇思25天学习打卡营第22天|CycleGAN图像风格迁移互换

相关知识 CycleGAN 循环生成网络,实现了在没有配对示例的情况下将图像从源域X转换到目标域Y的方法,应用于域迁移,也就是图像风格迁移。上章介绍了可以完成图像翻译任务的Pix2Pix,但是Pix2Pix的数据必须是成对的。CycleGAN中只需…

【计算机网络】静态路由实验

一:实验目的 1:掌握通过静态路由方法实现网络的连通性。 二:实验仪器设备及软件 硬件:RCMS-C服务器、网线、Windows 2019/2003操作系统的计算机等。 软件:记事本、WireShark、Chrome浏览器等。 三:实验方…

从零开始:在linux系统安装MongoDB数据完整指南 新手常用命令

1 前言 MongoDB 是为快速开发互联网应用而设计的数据库系统。MongoDB 的设计目标是极简、灵活、作为 Web 应用栈的一部分。MongoDB 的数据模型是面向文档的,所谓文档是一种类似于json的结构。 官网教程:https://www.mongodb.com/docs/manual/ 2 安装部…

【专题】逻辑代数基础

1. 基本概念 逻辑:事物间的因果关系。 逻辑运算:逻辑状态按照指定的某种因果关系继续推理的过程。 逻辑代数:描述客观事物逻辑关系的数学方法,又称布尔代数。 逻辑变量:逻辑代数中的变量。 二值逻辑中,…

解决win10家庭版找不到Hyper-V的问题

Windows 10家庭版在默认的“启用或关闭Windows功能”中不直接包含Hyper-V选项,但可以通过手动步骤来启用它。以下是详细的解决方案: 步骤一:检查电脑是否支持Hyper-V 首先,确认电脑硬件是否支持Hyper-V功能。 打开Windows Powe…

一文弄懂 Nginx

文章目录 1.第⼀部分:Nginx基础回顾1.1 正向代理(Forward Proxy)1.2 反向代理(Reverse Proxy)1.3 Nginx的特点 2. 第⼆部分:Nginx核⼼配置⽂件解读2.1 全局块2.2 events块2.3 http块2.4 示例配置 全局块配置…

libevent入门篇

文章目录 概述下载编译目录samplehello-world初始化创建监听器处理连接处理信号 build 小结 概述 libevent 和 libev 都是由 c 实现的异步事件库;注册异步事件,检测异步事件,根据事件的触发先 后顺序,调用相对应回调函数处理事件…

【Test】一篇文章带你深入详细了解 QWidget 的属性

文章目录 1. 初步认识控件 QWidget2. QWidget2.1 enable 属性2.2 geometry 属性2.3 WindowFrame 的影响2.4 windowTitle 属性2.5 windowIcon 属性2.6 使用 qrc 文件管理资源2.7 QWidget 控件的 windowOpacity 属性2.8 QWidget 的 cursor 属性2.9 QWidget 的 font 属性2.10 QWid…

项目管理中的常用工件(二):可视化工件

项目管理中的常用工件(二):可视化工件 亲和图(affinity diagram)因果图(cause-and-effect diagram)直方图(histogram)流程图(flowchart)散点图&am…