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

💻博主现有专栏:

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

                Y小夜-CSDN博客

学习推荐:

        在当今这个飞速发展的信息时代,人工智能(AI)已经成为了一个不可或缺的技术力量,它正在逐步改变着我们的生活、工作乃至整个社会的运作方式。从智能语音助手到自动驾驶汽车,从精准医疗到智慧城市,人工智能的应用已经渗透到了我们生活的方方面面。因此,学习和掌握人工智能相关的知识和技能,对于任何希望在这个时代保持竞争力的个人来说,都已经变得至关重要。

        然而,人工智能是一个涉及数学、计算机科学、数据科学、机器学习、神经网络等多个领域的交叉学科,其学习曲线相对陡峭,对初学者来说可能会有一定的挑战性。幸运的是,随着互联网教育资源的丰富,现在有大量优秀的在线平台和网站提供了丰富的人工智能学习材料,包括视频教程、互动课程、实战项目等,这些资源无疑为学习者打开了一扇通往人工智能世界的大门。

        前些天发现了一个巨牛的人工智能学习网站:前言 – 人工智能教程通俗易懂,风趣幽默,忍不住分享一下给大家。

目录

🎯要求

🎯前提

🎯事件

🎯存储函数

🎯触发器

🎯存储过程


🎯要求

  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

上次消费时间

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y小夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值