当前位置: 首页 > news >正文

【第二十二部分】游标

【第二十二部分】游标


文章目录

  • 【第二十二部分】游标
  • 22. 游标
    • 22.1 游标的定义
    • 22.2 游标的使用
    • 22.3 游标优缺点
  • 总结


22. 游标

22.1 游标的定义

当我们筛选条件的时候,虽然可以使用WHERE或者HAVING去选出我们想要的字段,但是去无法将一大块的结果集进行遍历,从而更加细致的处理数据。

这个时候就可以使用游标,游标是一种临时的数据库对象,可以指向存储在数据库表中的数据行指针,这里游标充当了指针的作用,我们可以通过操作游标来对数据行进行操作。


22.2 游标的使用

  1. 声明游标 DECLARE 游标名 CURSOR FOR 写sql语句;
  2. 打开游标 OPEN 游标名;
  3. 使用游标 FETCH 游标名 INTO variable_name; 表示游标来读取当前行,并且将数据保存到 variable_name如果游标读取的数据行有多个列名,则在 INTO 关键字后面赋值给多个变量名即可
  4. 关闭游标 CLOSE 游标名;

举例说明

# 创建存储过程“get_count_by_limit_total_salary()”,声明IN参数 limit_total_salary,DOUBLE类型;声明OUT参数total_count,INT类型。函数的功能可以实现累加薪资最高的几个员工的薪资值,直到薪资总和达到limit_total_salary参数的值,返回累加的人数给total_count。DELIMITER //
CREATE PROCEDURE get_count_by_limit_total_salary(IN limit_total_salary DOUBLE,OUT total_count INT)
BEGIN DECLARE cur_salary DOUBLE DEFAULT 0.0; # 存储当前游标所指向的数据DECLARE sum_salary DOUBLE DEFAULT 0.0; # 总金额DECLARE t_count INT DEFAULT 0;# 声明游标DECLARE cursor_name CURSOR FOR SELECT salary FROM employees ORDER BY salary DESC;# 打开游标OPEN cursor_name;WHILE sum_salary <= limit_total_salary DO# 使用游标# 该操作是将当前所指向的数据存储到cur_salary变量中FETCH cursor_name INTO cur_salary;# 累加SET sum_salary = sum_salary + cur_salary;SET t_count = t_count + 1;END WHILE;SET total_count = t_count;# 关闭游标CLOSE cursor_name;
END //
DELIMITER ;CALL get_count_by_limit_total_salary(70000,@total_count);
SELECT @total_count;

22.3 游标优缺点

优点

  1. 能够更加细致的处理数据,达到预期效果
  2. 游标可以在存储程序中使用,效率高,程序也更加简洁
  3. 操作灵活,可以对结果集进行逐行定位

缺点:使用游标的过程中,会对数据行进行加锁,这样在业务并发量大的时候,不仅会影响业务之间的效率,还会消耗系统资源,造成内存不足,这是因为游标是在内存中进行的处理。


总结

以上就是今天要讲的内容,希望对大家有所帮助!!!

相关文章:

【第二十二部分】游标

【第二十二部分】游标 文章目录【第二十二部分】游标22. 游标22.1 游标的定义22.2 游标的使用22.3 游标优缺点总结22. 游标 22.1 游标的定义 当我们筛选条件的时候&#xff0c;虽然可以使用WHERE或者HAVING去选出我们想要的字段&#xff0c;但是去无法将一大块的结果集进行遍…...

【面试题】2023高频前端面试题20题

大厂面试题分享 面试题库前端后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库1. 简述 TCP 连接的过程&#xff08;淘系&#xff09;参考答案&#xff1a;TCP 协议通过三次握手建立可靠的点对点连接&#xff0c;具体过程…...

Spring解决循环依赖为什么需要三级缓存?

前言什么是循环依赖呢&#xff1f;我们抛开Spring这个框架来聊下什么是循环依赖&#xff0c;循环依赖可能在我们平时的开发过程中是属于比较常见的。Spring容器最大的功能就是对bean的生命周期进行管理&#xff0c;每个bean在创建的过程中&#xff0c;需要得到一个完整的bean需…...

Android源码分析 - 回顾Activity启动流程

跟踪Activity启动流程 基于 Android8.0 源码跟踪 Android8/9大同小异&#xff0c;但Android10对activity的管理解耦交给了ATMS。 跟踪目的&#xff1a;ams到底在哪里发起activity的启动的&#xff1f;以及resume等生命周期到底是谁发起的&#xff1f;onResume()之后是哪里发起…...

PDMS二次开发(一)——PML类型程序类型与概念

目录前言一、PML类型与概念基础知识变量函数小例子注释PML表达式条件判断语句循环skip和break窗口程序在PDMS菜单栏中添加程序窗口自动定位PML常见控件前言 PDMS二次开发需要.net 有自带的PML语言和C# .net一般通常泛指的是C#语言 模型数据借助.NET的接口可以转换成数据库中的…...

一文揭晓:手机号码归属地api的作用是什么?

随着手机的普及&#xff0c;手机号码的归属地已经成为很多网站和App中调用的重要数据资源。而手机号码归属地API可以帮助开发者快速获取手机号码归属地信息。目前&#xff0c;这种API已经被广泛地使用&#xff0c;用于各种不同的应用场景。这对于用户及开发者来说是非常重要的&…...

电容的结构分类介质封装及应用场景总结

🏡《总目录》 目录 1,概述2,结构分类2.1,固定电容器2.2,可变电容器3,介质分类3.1,无机介质电容器3.2,有机介质电容器3.3,电解电容器3.4,气体介质电容器4,封装分类4.1,直插电容器4.2,贴片电容器5,总结1,概述 电容器作为一种储能元件,在电路中和电阻一样非常常用…...

数据结构初阶——时间复杂度与空间复杂度

时间复杂度与空间复杂度1. 算法效率1.1 如何衡量一个算法的好坏1.2算法的复杂度2.时间复杂度2.1 时间复杂度的概念2.2 大O的渐进表示法2.3常见时间复杂度计算举例实列1&#xff1a;实列2&#xff1a;实列3&#xff1a;实列4&#xff1a;实列5&#xff1a;实列6&#xff1a;实列…...

深度学习之“制作自定义数据”--torch.utils.data.DataLoader重写构造方法。

深度学习之“制作自定义数据”–torch.utils.data.DataLoader重写构造方法。 前言&#xff1a; ​ 本文讲述重写torch.utils.data.DataLoader类的构造方法&#xff0c;对自定义图片制作类似MNIST数据集格式&#xff08;image, label&#xff09;&#xff0c;用于自己的Pytorc…...

#G. 求约数个数之六

我们先求到区间[1..b]之间的所有约数之和于是结果就等于 [1..b]之间的所有约数之和减去[1..a-1]之间的约数之和很明显这两个问题是同性质的问题&#xff0c;只是右端点不同罢了.明显对于1到N之间的数字&#xff0c;其约数范围也为1到N这个范围内。于是我们可以枚举约数L,当然这…...

如何为Java文件代码签名及添加时间戳?

Java是一种流行的编程语言&#xff0c;大多数组织都使用它来开发业务应用程序。由于其高使用率&#xff0c;攻击者总是试图找到其中的漏洞并基于它利用软件。为了防止此类攻击&#xff0c; 为 Java 文件&#xff08;.jar&#xff09;进行代码签名并添加时间戳&#xff0c;可以防…...

Xamarin.Forsm for Android 显示 PDF

背景 某些情况下&#xff0c;需要让用户阅读下发的文件&#xff0c;特别是红头文件&#xff0c;这些文件一般都是使用PDF格式下发&#xff0c;这种文件有很重要的一点就是不能更改。这时候就需要使用原文件进行展示。 Xamarin.Forms Android 中的 WebView 控件是不能直接显示的…...

RK3399平台开发系列讲解(LED子系统篇)LED子系统详解

🚀返回专栏总目录 文章目录 一、设备树编写二、LED子系统2.1、用户态2.2、内核驱动三、驱动代码3.1、平台设备驱动的注册3.2、平台设备驱动的probe四、使用方法沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将详细介绍LED子系统。 一、设备树编写 节点属性添加…...

LeetCode 432. 全 O(1) 的数据结构

LeetCode 432. 全 O(1) 的数据结构 难度&#xff1a;hard\color{red}{hard}hard 题目描述 请你设计一个用于存储字符串计数的数据结构&#xff0c;并能够返回计数最小和最大的字符串。 实现 AllOneAllOneAllOne 类&#xff1a; AllOne()AllOne()AllOne() 初始化数据结构的对…...

再析jvm

前言 希望自己每一次学习都有不同的理解 文章目录前言1. jvm的组成取消永久代使用元空间原因2. 运行时数据区3. 堆栈区别队列和栈&#xff0c;队列先进先出&#xff0c;栈先进后出从栈顶弹出4. GC、内存溢出、垃圾回收4.1 如何确定引用是否会被回收4.1.1 Java中的引用类型4.1.…...

社招前端二面面试题总结

代码输出结果 var A {n: 4399}; var B function(){this.n 9999}; var C function(){var n 8888}; B.prototype A; C.prototype A; var b new B(); var c new C(); A.n console.log(b.n); console.log(c.n);输出结果&#xff1a;9999 4400 解析&#xff1a; conso…...

人人能读懂redux原理剖析

一、Redux是什么&#xff1f; 众所周知&#xff0c;Redux最早运用于React框架中&#xff0c;是一个全局状态管理器。Redux解决了在开发过程中数据无限层层传递而引发的一系列问题&#xff0c;因此我们有必要来了解一下Redux到底是如何实现的&#xff1f; 二、Redux的核心思想…...

uniCloud云开发----7、uniapp通过uni-swiper-dot实现轮播图

uniapp通过uni-swiper-dot实现轮播图前言效果图1、官网实现的效果2、需求中使用到的效果图官网提供的效果图源码1、html部分2、js部分3、css部分根据需求调整轮播图前言 uni-swiper-dot.文档 uni-swiper-dot 轮播图指示点 - DCloud 插件市场 本次展示根据需求制作的和官网用到…...

IM即时通讯构建企业协同生态链

在当今互联网信息飞速发展的时代&#xff0c;随着企业对协同办公要求的提高&#xff0c;协同办公的定义提升到了智能化办公的范畴。大多企业都非常重视构建连接用户、员工和合作伙伴的生态平台&#xff0c;利用即时通讯软件解决企业内部的工作沟通、信息传递和知识共享等问题。…...

Python实现构建gan模型, 输入一个矩阵和两个参数值,输出一个矩阵

构建一个GAN模型,使用Python实现,该模型将接受一个矩阵和两个参数值作为输入,并输出另一个矩阵。GAN(生成对抗网络)是一种深度学习模型,由生成器和判别器两部分组成,可以用于生成具有一定规律性的数据,如图像或音频。 # 定义生成器 def make_generator(noise_dim, dat…...

告别手动回复!用Python+uiautomation2给Android微信做个24小时值班机器人(附完整代码)

Android微信自动化&#xff1a;用uiautomation2打造全天候智能应答系统 深夜11点&#xff0c;你的手机突然亮起——又是一位老客户发来产品咨询。而此时&#xff0c;你开发的微信机器人已经自动识别关键词&#xff0c;秒回了详细的产品参数和购买链接。这不是科幻场景&#xff…...

LibTV“私人好莱坞”让短剧创作爽到飞起!

打开LibTV官网开始创作,系统直接创建了一张无限画布,所有素材都能在同一画布上调度生成。...

告别杂乱原理图!手把手教你用PDFCreator+Ghostscript为OrCAD 16.6原理图生成带导航书签的PDF

告别杂乱原理图&#xff01;手把手教你用PDFCreatorGhostscript为OrCAD 16.6原理图生成带导航书签的PDF 硬件工程师的日常工作中&#xff0c;原理图评审是绕不开的环节。但你是否遇到过这样的场景&#xff1a;当你将精心设计的OrCAD原理图导出为PDF分享给团队时&#xff0c;软件…...

OpenClaw健康检查方案:千问3.5-35B-A3B-FP8长期运行维护指南

OpenClaw健康检查方案&#xff1a;千问3.5-35B-A3B-FP8长期运行维护指南 1. 为什么需要健康检查&#xff1f; 去年冬天的一个深夜&#xff0c;我被手机警报惊醒——部署在家庭服务器的OpenClaw千问3.5组合突然停止了响应。检查日志发现是显存泄漏导致进程崩溃&#xff0c;而当…...

手机网站优化与App优化有什么不同_网站 SEO 外链建设应该如何进行

手机网站优化与App优化有什么不同_网站 SEO 外链建设应该如何进行 在当今移动互联网时代&#xff0c;无论是手机网站优化还是App优化&#xff0c;都是提升用户体验和提高网站流量的重要手段。这两者之间有许多不同之处&#xff0c;特别是在搜索引擎优化&#xff08;SEO&#x…...

IQuest-Coder-V1-40B-Instruct快速上手:LoRA微调打造专属编程助手

IQuest-Coder-V1-40B-Instruct快速上手&#xff1a;LoRA微调打造专属编程助手 1. 认识IQuest-Coder-V1-40B-Instruct 1.1 新一代代码大模型的特点 IQuest-Coder-V1-40B-Instruct是一款专为软件工程和竞技编程设计的大型语言模型。它基于创新的代码流多阶段训练范式构建&…...

伊朗媒体:美军试图炸死在伊朗失联飞行员

新华社德黑兰4月5日电 伊朗塔斯尼姆通讯社5日凌晨报道称&#xff0c;美军搜救被击落战机的一名飞行员无果&#xff0c;试图通过空袭其在伊朗的可能藏身之处将其炸死。报道援引一名伊朗军方消息人士的话说&#xff0c;4日夜间至5日凌晨&#xff0c;美军出动战机&#xff0c;轰炸…...

Z-Image-Turbo-辉夜巫女效果实测:LoRA微调模型在Gradio界面的高清出图表现

Z-Image-Turbo-辉夜巫女效果实测&#xff1a;LoRA微调模型在Gradio界面的高清出图表现 1. 模型简介与部署 Z-Image-Turbo-辉夜巫女是基于Z-Image-Turbo模型进行LoRA微调后的特殊版本&#xff0c;专门针对生成"辉夜巫女"风格图片进行了优化。该模型通过Xinference框…...

OpenClaw开源贡献:为Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF开发社区技能

OpenClaw开源贡献&#xff1a;为Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF开发社区技能 1. 为什么我要为OpenClaw开发技能 去年冬天&#xff0c;我在整理个人项目文档时&#xff0c;突然意识到一个痛点&#xff1a;每次都要手动将Markdown笔记转换成不同平台要求的格式…...

Z-Image-GGUF文生图模型问题解决:常见报错处理,让AI绘画更顺畅

Z-Image-GGUF文生图模型问题解决&#xff1a;常见报错处理&#xff0c;让AI绘画更顺畅 1. 引言 在使用Z-Image-GGUF文生图模型进行AI绘画创作时&#xff0c;许多用户可能会遇到各种技术问题和报错信息。本文将全面梳理最常见的报错情况及其解决方案&#xff0c;帮助您快速定位…...