MySQL(五)

本文详细介绍了MySQL中的游标概念及其在存储过程中的使用,包括声明、打开、关闭及如何通过FETCH获取数据。同时,讨论了触发器的原理,说明了其在INSERT、UPDATE、DELETE操作前后的作用,以及NEW和OLD虚拟表的使用。内容涵盖了数据库管理和程序逻辑控制的重要方面。
摘要由CSDN通过智能技术生成

游标

游标(cursor)是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。

有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。

MySQL中游标只能用于存储过程。

声明游标

CREATE PROCEDURE 存储过程名()
BEGIN
	DECLARE 游标名 CURSOR
	FOR
	SELECT 列名
	FROM 表名
END;

打开游标和关闭游标

OPEN 游标名;

CLOSE 游标名;
-- 如果你不明确关闭游标,MySQL将会在到达END语句时自动关闭它。

使用游标数据

使用游标数据的前提是,已经打开了游标,然后使用FETCH语句逐行访问。

CREATE PROCEDURE processorders(oBEGIN
-- Declare local variablesDECLARE o INT;
-- Declare the cursor
DECLARE ordernumbers CURSORFOR
SELECT order_num FROM orders;
-- open the cursor
OPEN ordernumbers;
-- Get order number
FETCH ordernumbers INTO o ;
-- Close the cursor
CLOSE ordernumbers;
END;

待补

触发器

在某个表发生更改时自动处理,这确切地说就是触发器。

触发器值响应DELETE,UPDATE,INSERT这三种操作,可以选择在这三种操作之前或之后响应,也就是说每个表至多有六个触发器。

触发器名必须在每个中唯一,而不是整个数据库。

只有才支持触发器,视图不行。

创建触发器

CREATE TRIGGER 触发器名 BEFORE/AFTER
INSERT/UPDATE/DELETE ON 表名
[FOR EACH ROW] 响应动作

删除触发器

DROP TRIGGER 触发器名;

INSERT触发器

​ 在INSERT触发器内,可以引用一个名为NEW的的虚拟表访问被插入的行;

​ 在BEFOREINSERT触发器中,NEW中的值可以被改变;

DELETE触发器

​ 在DELETE触发器内,可以引用一个名为OLD的虚拟表访问被删除的行;

​ OLD中的值不可更改。

UPDATE触发器:

​ 在UPDATE触发器内,可以用OLD表访问更改前的值,使用NEW表访问更改后的值;

​ NEW中的值可以被改变;OLD中的值不可更改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值