游标需要手动关闭吗MySQL,【MySQL必知必会】使用游标
游标
由于MySQL检索返回的是一组成为结果集的行,可能是零行也可能是多行,但是之前学到的并没有能一行一行处理的方式。而有时候需要需要在检索出来的行中前进、后退一行或多行,这个时候需要使用游标。
游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览过更改。
游标在MySQL中只能用于存储过程或者函数
使用游标的流程
在能够使用游标前,必须声明它。为了定义要使用的SELECT语句。
声明游标后需要打开游标。这个过程用SELECT语句把数据实际检索出来。
对于填有数据的游标,根据需要检索出各行。
结束游标需要关闭它
打开和关闭游标
打开:OPEN CURSOR
关闭: CLOSE CURSOR
CURSOR指的是先前定义的游标名
如一个完整的打开关闭过程:
CREATE PROCEDURE processorder()
BEGIN
-- Declare the cursor
DECLARE ordernumbers CURSOR
FOR
SELECT order_num FROM orders;
-- Open the cursor
OPEN ordernumbers;
-- Close the cursor
CLOSE ordernumbers;
END//
Query OK, 0 rows affecte
这个存储过程只是做了声明、打开和关闭游标,没有对检索出的数据做任何操作。
使用游标数据
在游标打开后,可以使用FETCH语句来访问每行数据。可以指定检索哪列数据,数据存储在什么地方。
mysql> CREATE PROCEDURE processtitle()
-> BEGIN
-> -- Declare local variables
-> DECLARE o VARCHAR(100);
->
-> -- Declare the cursor
-> DECLARE titlenumbers CURSOR
-> FOR
-> SELECT title FROM articles;
->
-> -- Open the cursor;
-> OPEN titlenumbers;
->
-> -- Get title number
-> FETCH titlenumbers INTO o;
->
-> CLOSE titlenumbers;
-> END//
这部分存储过程中,先定义了一个局部变量o,数据类型为VARCHAR,之后将articles表中的title列中的当前行(此例为第一行)数据传入变量o中。
再看一个例子:
mysql> CREATE PROCEDURE processtitles()
-> BEGIN
-> -- Declare local variables
-> Declare done BOOLEAN DEFAULT 0;
-> Declare o VARCHAR(100);
->
-> -- Declare the cursor
-> DECLARE titlenumbers CURSOR
-> FOR
-> SELECT title FROM articles;
->
-> -- Declare continue handle
-> DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
->
-> -- Open the cursor
-> OPEN titlenumbers;
->
-> -- Loop through all rows
-> REPEAT
->
-> -- Get title number
-> FETCH titlenumbers INTO o;
->
-> -- End of loop
-> UNTIL done END REPEAT;
->
-> -- Close the cursor
-> CLOSE titlenumbers;
->
-> END//
此存储过程中定义了名为titlenumbers的游标,随后进行了重复执行语句DECLARE CONTINUE HANDLER, 对该列每行数据进行读取后逐行传入变量o中。
其中变量done决定了循环的结束点,当done为1时循环结束。02000指的是没有更多行循环是出现这个条件。
游标需要手动关闭吗MySQL,【MySQL必知必会】使用游标相关推荐
- mysql必学十大必会_MYSQL 学习(一)--启蒙篇《MYSQL必知必会》
MYSQL必知必会 一. DDL 数据定义语言 Data Definition Language 是指CREATE,ALTER和DROP语句. DDL允许添加/修改/删除包含数据的逻辑结构,或允许用户 ...
- mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)
站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...
- MySQL必知必会笔记(一)基础知识和基本操作
第一章 了解MySQL 数据库 保存有组织的数据的容器.(通常是一个文件或一组文件) 人们经常使用数据库这个术语代替他们使用的软件.这是不正确的,确切的说,数据库软件应称为DBM ...
- mysql必知必会_MySQL必知必会
MySQL必知必会 联结的使用, 子查询, 正则表达式和基于全文本的搜索, 存储过程, 游标, 触发器, 表约束. 了解SQL 数据库基础 电子邮件地址薄里查找名字时, 因特网搜索站点上进行搜索, 验 ...
- 《MySQL必知必会》的读后感
<MySQL必知必会>的读后感 该文章是阅读<MySQL必知必会>这本书后的读后感,并且总结了这本书中的几个方面的笔记. 1 查询数据 注意SQL语句不区分大小写,因此 SEL ...
- MySQL必知必会pdf
下载地址:网盘下载 内容简介 · · · · · · <MySQL必知必会>MySQL是世界上最受欢迎的数据库管理系统之一.书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结 ...
- 根据SQL必知必会学习SQL(MYSQL)
很久都没有整理SQL语句了,遇到让写SQL语句的题也很迷茫,所以就重拾一下知识,本文章根据SQL必知必会进行梳理 文章目录 一.检索所有列 1.select 1.1检索单个列 1.2 检索多个列 1. ...
- 从《MySQL必知必会》中对MySQL的理解
MySQL是一个开源的DBMS,是目前主流的关系型数据库DBMS之一.在<MySQL必知必会>中,作者通过简单实用的订单实例简而明要地介绍了MySQL,这里简单汇总. 查询 检索+过滤+排 ...
- MySQL必知必会 代码+说明 全书整理
前不久收获一本<mysql必知必会>实体书,这周得空将整本书再次回顾了下. 整理了书中全部的代码,加上了必要的语句说明. 我所使用的软件版本:mysql workbench 8.0.15 ...
- 读mysql必知必会有感_读《MySql必知必会》笔记
MySql必知必会 2017-12-21 意义:记录个人不注意的,或不明确的,或不知道的细节方法技巧,此书250页 登陆: mysql -u root-p -h myserver -P 9999 SH ...
最新文章
- Apache工具类ToStringBuilder用法简介
- js创建对象的几种方法
- 调整cisco参数设置
- python生成四位随机数
- JDBC批量Insert深度优化(有事务)
- python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)
- Android Studio(6)---编写APP
- java main生命周期_java的生命周期
- php 量 高并发 nosql,nosql - 高并发下Apache+mongodb的php驱动不稳定
- 86. php 绘图体系(2)
- 【maven】maven基础知识总结
- 基于Scala版本的TMDB大数据电影分析项目
- linux下游戏制作工具,在Linux下可用Wine安装和运行D5Power游戏制作工具、蜂窝助手...
- Python | 使用Socks5
- Mac 通过adb拉取dropbox中的内容
- 苹果ios签名证书的生成方法
- MS933/MS934 适用于 1MP/60fps 摄像头,15MHz100MHz,10 位/12 位的具有直流平衡编码和双向控制通道的串化器和解串器
- MySQL自学笔记详细版(从安装到入门)
- cento任务栏如何固定在下方_桌面越乱越聪明?爱因斯坦是如何管理桌面的
- 软考的证书含金量高吗?