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://www.mzph.cn/bicheng/50555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scrapy 爬取旅游景点相关数据(一)

第一节 Scrapy 练习爬取穷游旅游景点 配套视频可以前往B站:https://www.bilibili.com/video/BV1Vx4y147wQ/?vd_source4c338cd1b04806ba681778966b6fbd65 本项目为scrapy 练手项目,爬取的是穷游旅游景点列表数据 0 系统的环境 现在网上可以找到很多scr…

其它------

这里写目录标题 一级目录二级目录三级目录 一级目录 二级目录 三级目录

Pytorch使用教学6-张量的分割与合并

在使用PyTorch时,对张量的分割与合并是不可避免的操作,本节就带大家深刻理解张量的分割与合并。 在开始之前,我们先对张量的维度进行深入理解: t2 torch.zeros((3, 4)) # tensor([[0., 0., 0., 0.], # [0., 0., 0., 0.…

异或和+博弈论

1.最后状态a1a2a3...an0,显然a1^a2^a3...^an0 2.对ai操作,变成new ai,等价于ai异或一个数字x,使得ai^xnew ai 3.因此得出结论:对某一堆石子(ai)的操作实际上等同于对该堆石子的异或 4.当前我的状况:a1^a2^a3...^an0,假设上一步,你的状况a1^a2…

C语言边界互通传送迷宫

目录 注意事项开头程序程序的流程图程序输入与输出的效果结尾 注意事项 程序里有关字符’\033’的输出都关于Sunshine-Linux的其中一篇博客——《printf函数高级用法设置打印字体颜色和背景色等》 开头 大家好,我叫这是我58。今天,我们来看一下我用C语…

现代Java开发:使用jjwt实现JWT认证

前言 jjwt 库 是一个流行的 Java 库,用于创建和解析 JWT。我在学习spring security 的过程中看到了很多关于jwt的教程,其中最流行的就是使用jjwt实现jwt认证,但是教程之中依然使用的旧版的jjwt库,许多的类与方法已经标记弃用或者…

“分布式” 和 “集群”

“分布式” 和 “集群” 是计算机系统领域中的两个重要概念,它们在设计和实现现代计算架构时经常被提到。虽然它们有重叠之处,但也有显著的区别。 集群(Cluster) 集群 是由多个计算节点(通常是计算机或服务器&#x…

国科大《人工智能原理与算法》2021年期末试题+2024经验(2025指南)

启发式路径算法(Pohl,1977)是一种最佳优先搜索,它的评估函数是: f(n)=(2−w)⋅g(n)+w⋅h(n)f(n)=(2−w)⋅g(n)+w⋅h(n) 假设 hh 是可采纳的。 ww 取什么值能保证算法是最优的?当 w=0w=0,w=1w=1,w=2w=2 时,分别是什么搜索算法?本题以并字棋(圈与十字游戏)为例练习博…

InsCode GPU服务器快速使用

文章目录 1. 背景介绍2. 环境配置 1. 背景介绍 InsCode服务器地址:https://inscode.csdn.net/workbench?tabcomputed。 2. 环境配置 新建环境后,按照如下步骤快速配置,以便后续执行深度学习模型训练。 数据 openlane 环境依赖 Copy Mini…

数据结构与算法--顺序表(Java)

📝个人主页🌹:誓则盟约 ⏩收录专栏⏪:Java SE 🤡往期回顾🤡:Java SE--基本数据类型(详细讲解) 🌹🌹期待您的关注 🌹🌹 什么…

【Python面试题收录】Python编程基础练习题②(数据类型+文件操作+时间操作)

本文所有代码打包在Gitee仓库中https://gitee.com/wx114/Python-Interview-Questions 一、数据类型 第一题 编写一个函数,实现:先去除左右空白符,自动检测输入的数据类型,如果是整数就转换成二进制形式并返回出结果&#xff1b…

昇思25天学习打卡营第23天|CV-ResNet50迁移学习

打卡 目录 打卡 迁移学习 实战练习 数据准备 数据处理 数据处理函数 数据处理流程 数据可视化 训练模型 构建Resnet50网络 固定特征进行训练 network 的输出 训练和评估 可视化模型预测 掌握迁移学习的重点在于,了解你的模型结构,通过冻结…

数据库安全审计系统:“可视化、可控化、智能化”护航数据安全

随着政府、企事业单位的业务规模逐步扩大,数据库的数量明显增长,各数据库的访问量激增,数据库安全隐患也日益扩大,主要体现如下: 一是敏感信息被泄露。例如用户姓名、银行账户、联系电话、用户地址等重要信息被泄露。 …

【odoo17 | Owl】前端js钩子调用列表选择视图

概要 在我们选择多对一或者多对多字段的时候,经常看到可以弹出列表弹窗让人一目了然的效果,效果如下: 那么,这种效果是odoo本身封装好的组件,我们在平时的前端界面开发的时候,既不是后端视图的情况下&#…

【YOLOv5/v7改进系列】引入中心化特征金字塔的EVC模块

一、导言 现有的特征金字塔方法过于关注层间特征交互而忽视了层内特征的调控。尽管有些方法尝试通过注意力机制或视觉变换器来学习紧凑的层内特征表示,但这些方法往往忽略了对密集预测任务非常重要的被忽视的角落区域。 为了解决这个问题,作者提出了CF…

v-show 和 v-if 的区别 requests主要方法post、put和patch的简单区别

v-show 和 v-if 的区别 && requests主要方法&&post、put和patch的简单区别 v-show 和 v-if 的区别 v-show 和 v-if 都是 Vue 中用于控制元素显示与隐藏的指令 但它们有以下区别 v-show 通过 CSS 的 display 属性来控制元素的显示与隐藏,而 v-if…

数据结构(5.3_4)——线索二叉树的概念

普通二叉树找某结点前驱和后继的方法 中序线索二叉树 n个结点的二叉树,有n1个空链域!可用来记录前驱,后继的信息 中序线索二叉树的存储结构 //线索二叉树结点 typedef struct ThreadNode {ElemType data;struct BiTNode* lchild, * rchild;int ltag,…

前端面试高频50题,嘎嘎香

目录 HTML相关问题CSS相关问题JavaScript相关问题Vue.js相关问题React相关问题浏览器相关问题性能优化相关问题 1. HTML相关问题 1. 什么是Doctype?有什么作用? Doctype(文档类型声明)是一种标准通告,它告诉浏览器…

嵌入式驱动源代码(18):网络编程-原始套接字

目录 3种方式创建原始socket 常用头文件 IP_HDRINCL 三个参数 sockaddr_ll 3种方式创建原始socket socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))发送接收以太网数…

大模型:AI领域的下一个风口

一、什么是大模型? 大模型,顾名思义,是指具有超大规模的神经网络模型。它们通常需要海量的数据和计算资源来训练和运行。典型的大模型有 GPT-3、BERT、AlphaFold 等,这些模型在自然语言处理、生物信息学等领域取得了显著的成果。…