MySQL 游标(CURSOR)
2022/2/7 19:20:53
本文主要是介绍MySQL 游标(CURSOR),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
游标(cursor)
游标是用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标的声明、OPEN、FETCH和CLOSE,其语法如下:
#声明游标 declare 游标名称 cursor for 查询语句; #打开游标 open 游标名称; #获取游标记录 fetch 游标名称 into 变量[,变量]; #关闭游标 close 游标名称;
案例:根据传入的参数usalary,来查询employees表中所有员工工资小于等于usalary的员工名和所在部门,并将用户的专业插入到所创建的一张新表(id,name,department_id)。
DROP PROCEDURE myp1; DELIMITER $ CREATE PROCEDURE myp1(IN usalary DOUBLE) BEGIN #注意创建变量要在创建游标之前!!! DECLARE empname VARCHAR(50); DECLARE empdid INT; #step1 声明游标,存储查询结果 DECLARE u_cursor CURSOR FOR SELECT CONCAT(last_name,' ',first_name),department_id FROM employees WHERE salary<=usalary; ##step2 准备:创建表结构 DROP TABLE IF EXISTS emp_under_sal; CREATE TABLE IF NOT EXISTS emp_under_sal( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(50), department_id INT ); #step3 开启游标 OPEN u_cursor; #step4 获取游标中的记录 WHILE TRUE DO #目前这里还有一个bug,等学习了handler之后就可以解决 FETCH u_cursor INTO empname,empdid; #step5 插入数据到新表中 INSERT INTO emp_under_sal VALUES(NULL,empname,empdid); END WHILE; #step6 关闭游标 CLOSE u_cursor; END$ #调用存储过程 call myp1(10000);
存储过程
handler
这篇关于MySQL 游标(CURSOR)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-02MySQL 3主集群搭建
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解