MySQL存储过程学习入门笔记

本文详细介绍了SQL存储过程和触发器的概念及应用。存储过程是预编译的SQL语句集合,可提高执行效率并重复使用。触发器则是在特定事件(如INSERT、UPDATE或DELETE)发生时自动执行的特殊存储过程,用于增强数据完整性和实施业务规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、存储过程(Stored Procs)

存储过程就是包含一系列sql语句的集合,完成一个复杂的功能。

存储过程可以被反复使用,使用效率非常高。

---------------------------------这是一个简单的存储过程例子------------------------------------------------

DELIMITER $$   --将原来的";"这个定界符替换为"$$"-------------------------------------------------

CREATE PROCEDURE show_address()    --show_address存储过程名称

BEGIN   --开始

          UPDATE student SET address = '广州' WHERE NAME = '深圳';   

          SELECT *FROM student WHERE address = '深圳';

END  $$  --结束

DELIMITER ;  --存储过程定义之后恢复原来的定界符";"

------------------------------------------------------------------------------------

------------调用存储过程-----------

CALL show_address;

-------------------------------------------

2、触发器

触发器是一个特殊的存储过程,触发器的执行不是由程序的调用,也不是手动执行,而是由事件触发的。

触发器经常被用在加强数据的完整性约束和业务规则。

在MySQL中,触发器可以在执行INSERT、UPDATE或者DELETE时,执行一些特定的操作。

-------------------------------这是一个触发器简单例子----------------------------------------

--在student表里面插入一条记录的时候在student_totals表里将total字段的值加1

-----没有student_tatals表时先创建它,并给total字段赋一个初始值0

CREATE TABLE student_totals(total INT)

VALUES(0);

SELECT * FROM student_totals;

-------------------------------------------------------------------------------------------------------

INSERT INTO student(NAME,age,sex,address)

VALUES('小明',22,'男','广州')

------------------触发器------------------------------------------------------------------------

DELIMITER $$

CREATE TRIGGER student_insert_trigger

AFTER INSERT ON student FOR EACH ROW

BEGIN

          UPDATE student_totals SET total = total+1;

END $$

DELIMITER ;

------------------------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值