一、MySQL游标的概念

1、游标介绍

MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解。

有数据缓冲的思想:游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。 先有数据基础:游标是在先从数据表中检索出数据之后才能继续灵活操作的技术。 类似于指针:游标类似于指向数据结构堆栈中的指针,用来pop出所指向的数据,并且只能每次取一个。

2、游标优缺点:

(1)游标的优点:

因为游标是针对行操作的,所以对从数据库中select查询得到的每一行可以进行分开的独立的相同或不同的操作,是一种分离的思想。可以满足对某个结果行进行特殊的操作。 游标与基于游标位置的增删改查能力。 MySQL数据库中没有专门描述一行的表达形式,但这是需要的,所以,个人理解的话,我觉得游标是在关系数据库这种面向集合的系统中抽离出来,单独针对行进行表达(也可以理解成网上资料说的:游标是面向集合与面向行的设计思想之间的一种桥梁)

(2)游标缺点

游标的缺点是针对有点而言的,也就是只能一行一行操作,在数据量大的情况下,是不适用的,速度过慢。这里有个比喻就是:当你去ATM存钱是希望一次性存完呢,还是100一张一张的存,这里的100一张一张存就是游标针对行的操作。 数据库大部分是面对集合的,业务会比较复杂,而游标使用会有死锁,影响其他的业务操作,不可取。 当数据量大时,使用游标会造成内存不足现象。

3、游标的使用场景

针对游标的优缺点,我总结游标的使用场景,主要用在循环处理、存储过程、函数中使用,用来查询结果集,就比如:我们需要从表中循环判断并得到想要的结果集,这时候使用游标操作很方便速度也很快。

二、游标的使用

1、游标的使用步骤

游标的使用一般分为5个步骤,主要是:定义游标->打开游标->使用游标->关闭游标->释放游标。

(1).定义游标

语法为:

具体例子:

(2).打开游标

打开游标很简单就是下面的语句

(3).使用游标

使用游标需要用关键字fetch来取出数据,然后取出的数据需要有存放的地方,我们需要用declare声明变量存放列的数据其语法格式为:1  declare 变量1 数据类型(与列值的数据类型相同)

2  declare 变量2 数据类型(与列值的数据类型相同)

3  declare 变量3 数据类型(与列值的数据类型相同)

4  FETCH [NEXT | PRIOR | FIRST | LAST] FROM  [ INTO 变量名1,变量名2,变量名3[,…] ]

NEXT:取下一行的数据,游标一开始默认的第一行之前,故要让游标指向第一行,就必须第一次就执行FETCH NEXT操作

INTO:将一行中每个对应的列下的数据放到与列 的数据类型相同的变量中。

(4).关闭游标:

很简单的使用语句:

(5).释放游标

2、具体实例

1、未使用循环的游标实例

从表shops_info中使用游标对每一行进行fetch

代码如下:

结果如下:

未使用循环得到全部的行记录,值取到第一个fetch next指向的第一行记录。

2、使用循环的游标

本文由职坐标整理并发布,了解更多内容,请关注职坐标MySQL数据库频道!

mysql数据库游标有什么特性_MySQL数据库游标的概念介绍和游标的使用讲解相关推荐

  1. mysql数据库考试好考吗_MySQL数据库考试试题及答案

    <MySQL数据库考试试题及答案>由会员分享,可在线阅读,更多相关<MySQL数据库考试试题及答案(32页珍藏版)>请在人人文库网上搜索. 1.专业:移动通信科目: MySQL ...

  2. mysql数据库不耀华答案_MySQL数据库应用与实践教程

    目录 章数据库技术基础 1.1数据库系统概述 1.1.1数据库的概念 1.1.2数据管理技术的产生和发展 1.1.3数据库系统的特点 1.2数据模型 1.2.1数据处理的三个世界 1.2.2实体间的联 ...

  3. mysql r和n的区别_mysql数据库 r n

    mysql集群的备份与还原 应用场景 当使用mysql集群数据库的时候,有时候会误删一些数据,那么数据就缺失了完整性,现在需要将数据进行备份,将误删的数据还原出来,这样保证数据的完整性. 操作步骤 注 ...

  4. mysql数据库任务驱动教程答案_MySQL数据库任务驱动式教程

    项目一 认识数据库 任务1 认识数据库 1.1 了解数据库的基本应用 1.2 了解数据库的几个概念 1.3 认识关系型数据库 1.4 关系数据库设计 1.5 数据库应用系统体系结构 1.6 认识一个真 ...

  5. mysql 修改库的校对集_mysql数据库的基本操作(增删改查、字符集、校对集)

    MySQL数据库概述 MySQL数据库是经典的关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Dat ...

  6. mysql数据库基础 博客园_MySQL数据库基础

    数据库的一些概念题: DB DBMS 和DBS三者之间的关系 DBS(数据库系统) 包含DB(数据库)和DBMS(数据库管理系统) DB:是指datebase(数据库) DBS:是指datebase ...

  7. mysql数据库在哪里写语句_Mysql数据库操作语句

    零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PAS ...

  8. mysql数据库5.7破解版_MySQL数据库5.7下载

    MySQL数据库5.7v5.7.22.1是一款可以免费使用的小型数据库,之所以说它是小型数据库,是因为是拿去和DB2等大型数据库相比的.而且,MySQL更新到现在这个版本之后,功能也是越来越强大且全面 ...

  9. mysql数据库项目式教程答案_MySQL数据库项目式教程(高职高专国家示范性院校十三五规划教材)...

    导语 内容提要 郭水泉.关丽梅.王世刚主编的<MySQL数据库项目式教程(高职高专国家示范性院校十三五规划教材)>详细介绍了如何安装.管理.备份.维护和优化一个MySQL系统.全书分为八个 ...

最新文章

  1. Glide的缓存机制
  2. Linux驱动无硬件设备,Linux设备驱动与硬件通信
  3. axios使用post请求的时候后台接收不到参数
  4. Mysql (InnoDB引擎)聚集索引和辅助索引
  5. 汇编排序知识之冒泡排序
  6. [AtCoder Educational DP Contest] V - Subtree(树形dp + 前缀积/后缀积)
  7. 升级oracle spu,关于Oracle数据库PSU/SPU/BundlePatch的补丁号变化
  8. java 单例 生命周期_Rhythmk 一步一步学 JAVA (13) Spring-2 之Ben懒加载以及生命周期,单例...
  9. 诗与远方:无题(六十三)- 杂诗,然,矣
  10. 递归法:杨辉三角,计算第m层的第n个系数
  11. 《自己动手写操作系统》第二章——Bochs调试及相关仿真工具的使用方法
  12. CH340以及CH系列USB转串口驱动下载
  13. 矩阵卷积运算的具体过程,很简单
  14. 计算机拒绝访问移动硬盘,移动硬盘拒绝访问怎么办
  15. Inverting Visual Representations with Convolutional Networks论文理解
  16. 【等保知识】等保测评机构申请条件,所需资料以及流程
  17. VBA中启动其它程序
  18. 安卓9:Android studio模拟器屏幕翻转、旋转屏幕的解决办法
  19. js获取注册表中应用程序的路径,并通过注册表打开
  20. MBR10100FCT-ASEMI肖特基二极管MBR10100FCT

热门文章

  1. golang1.13环境变量保存路径 go env -w
  2. C++11学习之share_ptr和weak_ptr
  3. java获取字符串最长_基于java查找最长字符串代码实例
  4. java ee s2sh复习题_JavaEESSH框架答案试题题目及答案,期末考试题库,章节测验答案...
  5. python两台电脑文件传输_python实现简单socket程序在两台电脑之间传输消息的方法...
  6. r.java没有生成_r.java文件没有生成
  7. php中的替换函数,php字符串中替换函数是什么
  8. 用php获取header头信息
  9. 【微信小程序企业级开发教程】快递查询实例
  10. 【编译原理】关于LL(1)文法的探索