【MySQL】——函数、存储过程、触发器

news2024/11/17 17:35:54

💻博主现有专栏:

                C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,设计模式、Python机器学习等
🥏主页链接:

                Y小夜-CSDN博客

目录

🎯要求

🎯前提

🎯事件

🎯存储函数

🎯触发器

🎯存储过程


🎯要求

  1. 理解函数、存储过程、触发器的概念
  2. 掌握函数、存储过程、触发器的语法格式、使用方法
  3. 掌握函数、存储过程、触发器的创建、执行
  4. 能够使用函数、存储过程、触发器处理实际系统中的业务逻辑

🎯前提

进销存管理系统数据库salesmanagement中的货品表、货品库存表结构如下。

表2-1 货品名称表(goods)

Field

Type

Comment

gid

int

货品id

gname

varchar(20)

货品名称

unit

varchar(20)

计量单位

barcode

varchar(20)

货品条码

retail_Price

decimal(10, 2)

零售价

promotional_Price

decimal(10, 2)

促销价

abbreviations

varchar(20)

名称缩写(由触发器自行维护)

Status

tinyint

货品状态

(0正常,1暂停进货(不能购进,但可以销售),2不再进货(不能购进,也不能销售))

表2-2货品库存表stock

Field

Type

Comment

stockid

int

库存id

gid

Int

货品id,外键

quantity

decimal(18, 3)

(当前)库存数量

yesterday_quantity

decimal(18, 3)

昨日库存(用于日清),系统自动维护

month_quantity

decimal(18, 3)

月初库存(用于月结),系统自动维护

表中的数据如下表所示:

表2-3货品名称表(goods)数据

gid

gname

unit

barcode

retail_Price

promotional_Price

abbreviations

STATUS

1

可口可乐

101

3

2.5

kkkl

0

2

百事可乐

102

3

2.5

bskl

0

3

伊利牛奶

103

5

4.5

ylnn

0

4

农夫山泉

105

2

1.5

nfsq

0

5

涪陵榨菜

106

1

0.8

flzc

0

6

青岛啤酒

107

5

4

qdpj

0

7

牙刷

1009

3

2.5

yss

0

9

牙膏

1010

30

25

yggg

0

10

毛巾

1011

20

15

mjj

0

INSERT INTO goods (gid, gname, unit, barcode, retail_Price, promotional_Price, abbreviations, STATUS)

VALUES (1, '可口可乐', '瓶', '101', 3, 2.5, 'kkkl', 0),

       (2, '百事可乐', '瓶', '102', 3, 2.5, 'bskl', 0),

       (3, '伊利牛奶', '盒', '103', 5, 4.5, 'ylnn', 0),

       (4, '农夫山泉', '瓶', '105', 2, 1.5, 'nfsq', 0),

       (5, '涪陵榨菜', '袋', '106', 1, 0.8, 'flzc', 0),

       (6, '青岛啤酒', '听', '107', 5, 4, 'qdpj', 0),

       (7, '牙刷', '支', '1009', 3, 2.5, 'yss', 0),

       (9, '牙膏', '支', '1010', 30, 25, 'yggg', 0),

       (10, '毛巾', '条', '1011', 20, 15, 'mjj', 0);

表2-4货品库存表stock数据

stockid

gid

quantity

yesterday_quantity

month_quantity

2

10

20

0

0

3

1

10

0

0

4

2

11

0

0

5

3

30

0

0

6

4

40

0

0

7

5

30

0

0

8

6

50

0

0

9

7

60

0

0

10

9

70

0

0

INSERT INTO stock (stockid, gid, quantity, yesterday_quantity, month_quantity)
VALUES (2, 10, 20, 0, 0),
       (3, 1, 10, 0, 0),
       (4, 2, 11, 0, 0),
       (5, 3, 30, 0, 0),
       (6, 4, 40, 0, 0),
       (7, 5, 30, 0, 0),
       (8, 6, 50, 0, 0),
       (9, 7, 60, 0, 0),
       (10, 9, 70, 0, 0);

🎯事件

(1)创建一个事件,10秒后,用库存更新昨日库存。

DELIMITER $$
CREATE	EVENT `salesmanagement`.`direct_happen`
ON SCHEDULE
	 AT CURRENT_TIMESTAMP   + INTERVAL 10  SECOND  
DO
	BEGIN
	     UPDATE `stock` SET `yesterday_quantity`=`quantity`;
	END$$
DELIMITER ;

🎯存储函数

(1)创建PysxCx函数,能够根据输入的汉字,返回其拼音首字母缩写

🎯触发器

(1)在goods表上创建触发器,实现货品名称缩写的自动维护

(2)添加货品时,自动在库存中添加一条对应数据

(3)删除货品时,自动在库存中删除对应库存数据

🎯存储过程

(1)创建货品信息维护goodsWh存储过程,能够实现对货品信息的增删改操作

  1. 创建货品信息查询goodsCx存储过程,能够实现对货品信息的查询操作

(3)参照goodsWh、goodsCx存储过程分别创建2个存储过程,实现对user表信息的增删改及查询操作。

Field

Type

Comment

uid

int

顾客id,从10000开始

uname

varchar(20)

姓名

sex

varchar(20)

性别

card_number

varchar(20)

会员卡号

phone

varchar(20)

手机号

card_balance

decimal(10, 2)

卡内余额

  points

int

积分

last_purchase_date

date

上次消费时间

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

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

相关文章

社交新时代:Facebook如何塑造我们的互动方式

在当今社交媒体充斥着人们日常生活的情况下,Facebook作为影响力最大的社交平台之一,已经深深地影响了我们的互动方式和社交行为。从初期的大学校园社交网络发展到如今的全球社交巨头,Facebook已经成为许多人日常生活中不可或缺的组成部分。本…

【软考高项】三十八、风险管理7个过程

一、规划风险管理 1、定义、作用 定义:定义如何实施项目风险管理活动的过程作用:确保风险管理的水平、方法和可见度与项目风险程度相匹配,与对组织和其他干系人的重要程度相匹配 2、输入 项目管理计划 项目章程 项目文件 干系人登记册…

初识C++ · 内存管理

目录 1 C/C的内存分布 2 C语言的内存管理 3 C的内存管理 4 operator new 和 operator delete 5 定位new 1 C/C的内存分布 语言不同,内存分布是相同的,对于局部变量都是放在栈上,全局变量都是放在静态区(数据段)&…

O2OA(翱途)支持高斯_openGauss,瀚高_HighGo,磐维_panweidb等各种国产postgres分支数据库接入

O2OA(翱途)作为一款企业级应用平台,其支持多种数据库系统是其灵活性和可扩展性的重要体现。从MySQL、Oracle到国产的达梦、神州等数据库,再到对PostgreSQL的原生支持,O2OA展现了其对不同数据库环境的良好适应性。特别地…

Vue-路由介绍

目录 一、思考引入 二、路由介绍 一、思考引入 单页面应用程序,之所以开发效率高,性能高,用户体验好,是因为页面按需更新。 而如果要按需更新,首先需要明确:访问路径和组件的对应关系。该关系通过路由来…

2024最新同城吃喝玩乐小程序源码+同城分类信息小程序搭建+开源无需授权+详细图文安装部署教程

在繁忙的都市生活中,生活节奏飞快,人们希望能够快速、便捷地获取各类生活信息,满足日常的吃喝玩乐需求。同城吃喝玩乐同城分类信息小程序,非常受欢迎,提供一站式便捷生活新体验。 分享一款2024最新同城吃喝玩乐小程序…

1707jsp电影视频网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 校园商城派送系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数…

基于springboot+mybatis+vue的项目实战之前端

步骤: 1、项目准备:新建项目,并删除自带demo程序,修改application.properties. 2、使用Apifox准备好json数据的mock地址 3、编写基于vue的静态页面 4、运行 整个的目录结构如下: 0、项目准备 新建项目&#xff0…

【可实战】被测需求理解(需求文档是啥样的、从哪些角度进行需求评审、需求分析需要分析出哪些内容、如何提高需求分析能力)

产品人员会产出一个需求文档,然后组织一个需求的宣讲。测试人员的任务就是在需求宣讲当中,分析需求有没有存在一些问题,然后在需求宣讲结束之后通过分析需求文档,分析里面的测试点并预估一个排期。 一、需求文档是什么样的&#x…

西红柿叶病害检测(yolov8模型,从图像、视频和摄像头三种路径识别检测,包含登陆页面、注册页面和检测页面)

1.基于最新的YOLOv8训练的西红柿病害检测模型,和基于PyQt5制作的可视西红柿病害系统,包含登陆页面、注册页面和检测页面,该系统可自动检Bacterial Spot, Early_Blight, Healthy, Late_blight, Leaf Mold, Target_Spot, black spot&#xff0c…

同步时序电路的分析方法

同步时序电路的分析方法 基本步骤 Step1:写方程式 时钟方程 :各个触发器时钟信号的逻辑表达式,同步时序电路可省去不写 输出方程:时序电路的输出逻辑表达式,通常为现态和输入变量的函数 驱动方程 :各触发器…

【Java】初识网络编程

文章目录 前言✍一、互联网的发展1.独立模式2.网络的出现局域网LAN广域网WAN ✍二、网络编程概述✍三、网络编程中的术语介绍IP地址端口号协议OSI七层模型TCP\IP四层模型 ✍四、协议的层级之间是如何配合工作的 前言 在本文中,会对网络编程的一些术语进行解释&#…

【npm】解决npm包突然消失MODULE_NOT_FOUND

今天折腾新特性时需要升级nodejs,安装新版后npm离奇消失了。C:\Users\**用户名\AppData\Roaming\npm\node_modules下只有cnpm,没有npm的目录。重装nodejs也不好使。 机智如我,试了下cnpm -v是正常的,而且能看到nodejs,…

start.spring.io不支持java8,idea使用阿里云又报错

做项目的时候,我们可以发现,访问https://start.spring.io/ 创建脚手架项目的时候,最低是java 17了 但是对于很多项目来说,还是在用java8,这该怎么办呢? 值得庆幸的是,阿里云也同样有相同功能的…

掌握MySQL常用的命令

前言 MySQL是一个流行的开源关系型数据库管理系统,广泛应用于各种应用场景。熟练掌握MySQL的常用命令,对于数据库管理员和开发人员来说至关重要。本文将介绍MySQL数据库的一些基础术语、SQL语言分类,以及DDL、DML、DQL和DCL等操作&#xff0…

浅了解UE5

1.什么是UE5 UE5(Unreal Engine 5)是一款由Epic Games开的游戏引擎,它是UE4的后续版本。UE5于2021年5月首次发布,并在2022年正式发布。UE5引入了许多令人兴奋的新功能和改进,以下是一些主要的介绍: 1. 光线…

编程入门(六)【Linux系统基础操作四】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀if else条件控制基本的if语句带else的if语句嵌…

通俗易懂讲解 nginx-rtmp-module 是干嘛的?

文章目录 概述安装 nginx 和 nginx-rtmp-module配置 Nginx启动 Nginx使用示例推流拉流转码鉴权与安全自动录制 概述 nginx-rtmp-module 是一个用于 Nginx 的第三方模块,它扩展了 Nginx 服务器的功能,使其能够处理实时流媒体数据,特别是支持 …

leetcode刷题(5): STL的使用

文章目录 56. 合并区间解题思路c实现 55. 跳跃游戏解题思路c 实现 75. 颜色分类解题思路c 实现 36 下一个排列解题思路c 实现 56. 合并区间 题目: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&a…