MySQL 游标的作用与使用相关

Python面试题及详细答案150道(126-135) -- 数据库交互篇 本文介绍了Python中操作MySQL、SQLite数据库及ORM框架的核心技术。主要内容包括:1. 使用pymysql连接MySQL数据库,演示了连接配置、SQL执行和事务管理;2. ORM原理及主流框架SQLAlchemy和Django ORM的示例;3. 通过sqlite3模块操作轻量级SQLite数据库;4. 数据库事务的ACID特性解析。这些内容涵盖了Python数据库开发的关键知识点,适合准备前后端面试的开发者复习核心概念和实际应用。 阅读详情

转载自:http://www.cppcns.com/shujuku/mysql/374794.html

定义

我们经常会遇到这样的一种情况,需要对我们查询的结果进行遍历操作,并对遍历到的每一条数据进行处理,这时候就会使用到游标。

所以:游标(Cursor)是处理数据的一种存储在mysql服务器上的数据库查询方法,为了查看或者处理结果集中的数据,提供了在结果集中一次一行遍历数据的能力。

游标主要用在循环处理、存储过程、函数、触发器中。

游标的作用

比如我们上面那个students学生,需要对每个用户进行遍历,然后根据他们的其他评价进行加分或者减分。这时候我们就需要查询到所有的学生信息(包含成绩)。

select studentid,studentname,score from students; 

执行之后返回了的学生数据集合,我们如果需要对学生数据逐一遍历,然后根据具体的情况进行加分,那就需要是使用游标了。
游标相当于一个指针,这个指针指向select的第一行数据,可以通过移动指针来遍历后面的数据。

游标的使用

  • 声明游标:创建一个游标,并指定这个游标需要遍历的select查询,声明游标时并不会去执行这个sql。
  • 打开游标:打开游标的时候,会执行游标对应的select语句。
  • 遍历数据:使用游标循环遍历select结果中每一行数据,然后进行处理。
  • 业务操作:对遍历到的每行数据进行操作的过程,可以放置任何需要执行的执行的语句(增删改查):这里视具体情况而定
  • 关闭游标:游标使用完之后一定要释放。

注: 使用的临时字段需要在定义游标之前进行声明。

声明游标

声明一个游标。也可以在子程序中定义多个游标,但是一个块中的每一个游标必须有唯一的名字。声明游标后也是单条操作的,但是SELECT语句不能有INTO子句。
一个begin end中只能声明一个游标。

DECLARE cursor_name CURSOR FOR select_statement; 

打开游标

打开先前声明的游标。

OPEN cursor_name; 

遍历游标数据

这个语句用指定的打开游标读取下一行(如果有下一行的话),并且前进游标指针。取出当前行的结果,将结果放在对应的变量中,并将游标指针指向下一行的数据。
当调用fetch的时候,会获取当前行的数据,如果当前行无数据,会引发mysql内部的NOT FOUND错误。

FETCH cursor_name INTO var_list;

关闭游标

切记游标使用完毕之后要关闭。

CLOSE cursor_name; 

游标举例

写一个函数,里面包含对students 学生用户成绩的计算和附加分计算
数据

-- ----------------------------
-- Table structure for `students`
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students` (
  `studentid` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `studentname` varchar(20) DEFAULT NULL,
  `score` decimal(5,2) DEFAULT NULL,
  `classid` int(11) DEFAULT NULL,
  PRIMARY KEY (`studentid`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of students
-- ----------------------------
INSERT INTO `students` VALUES ('1', 'brand', '97.50', '1');
INSERT INTO `students` VALUES ('2', 'helen', '96.50', '1');
INSERT INTO `students` VALUES ('3', 'lyn', '96.00', '1');
INSERT INTO `students` VALUES ('4', 'sol', '97.00', '1');
INSERT INTO `students` VALUES ('5', 'b1', '81.00', '2');
INSERT INTO `students` VALUES ('6', 'b2', '82.00', '2');
INSERT INTO `students` VALUES ('7', 'c1', '71.00', '3');
INSERT INTO `students` VALUES ('8', 'c2', '72.50', '3');
INSERT INTO `students` VALUES ('9', 'lala', '73.00', '0');
INSERT INTO `students` VALUES ('10', 'A', '99.00', '3');
INSERT INTO `students` VALUES ('16', 'test1', '100.00', '0');
INSERT INTO `students` VALUES ('17', 'trigger2', '100.00', '0');
INSERT INTO `students` VALUES ('22', 'trigger1', '107.00', '0');

编写包含游标的函数

-- 判断函数如果存在则删除
DROP FUNCTION IF EXISTS fun_test;

-- 声明结束符为$ 
DELIMITER $
-- 创建函数,对符合条件的每个同学的分数进行加分,加的分数不能超过给定的值 max_score 
CREATE FUNCTION fun_test(max_score decimal(10,2))
RETURNS int

BEGIN
    -- 声明本地变量
    -- 定义实时 StudentId 的变量
    DECLARE var_studentId int DEFAULT 0;
    -- 定义计算后分数的变量
    DECLARE var_score decimal(10,2) DEFAULT 0;
    -- 定义游标结束标志变量
    DECLARE var_done int DEFAULT FALSE;
    
    -- 创建游标 
    DECLARE cur_test CURSOR 
        FOR SELECT studentid,score from students where classid<>0;
        
    -- 游标结束时会设置 var_done 为true,后续可以使用 var_done 来判断游标是否结束
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET var_done = TRUE;
    
    -- 打开游标
    OPEN cur_test;
    -- 使用 Loop 循环遍历游标
    select_loop:LOOP
        -- 先获取当前行的数据,然后将当前行的数据放入 var_studentId, var_score 中,如果无数据行了,var_done会被置为true
        FETCH cur_test INTO var_studentId, var_score;
        -- 通过var_done来判断游标是否结束了,退出循环
        IF var_done THEN
            LEAVE select_loop;
        END IF;
        -- 对 var_score 值添加随机值,不能超过给定的分数
        set var_score = var_score + LEAST(ROUND(rand()*10,0), max_score);
        update students set score = var_score where studentId = var_studentId;
    END LOOP;
    -- 关闭游标
    CLOSE cur_test;
    -- 返回结果:可以根据实际情况返回需要的内容
    RETURN 1;
END $
-- 结束符置为 ; 
DELIMITER ;

调用函数
参数为8,表示加分上限为8

mysql>
select fun_test(8);
+-------------+
| fun_test(8) |
+-------------+
|    1        |
+-------------+
1 row in set

查看结果
对比原来的成绩的值,发现成绩添加了随机值,但没超过给定的分数 8

mysql> select * from students;
+-----------+-------------+-------+---------+
| studentid | studentname | score | classid |
+-----------+-------------+-------+---------+
| 1         | brand       | 105.5 | 1       |
| 2         | helen       | 98.5  | 1       |
| 3         | lyn         | 97    | 1       |
| 4         | sol         | 97    | 1       |
| 5         | b1          | 89    | 2       |
| 6         | b2          | 90    | 2       |
| 7         | c1          | 76    | 3       |
| 8         | c2          | 73.5  | 3       |
| 9         | lala        | 73    | 0       |
| 10        | A           | 100   | 3       |
| 16        | test1       | 100   | 0       |
| 17        | trigger2    | 107   | 0       |
| 22        | trigger1    | 100   | 0       |
+-----------+-------------+-------+---------+
13 rows in set

查看触发器日志

符合条件被修改分数的有9条数据,都已经被触发器记录到日志里面了

mysql>
/*上一篇编写了触发器,当修改students表的时候触发日志记录 */
select * from triggerlog;
+----+--------------+---------------+-----------------------------------------+
| id | trigger_time | trigger_event |             memo                        |
+----+--------------+---------------+-----------------------------------------+
| 1  | after        | insert        | new student info,id:21                  |
| 2  | after        | update        | update student info,id:21               |
| 3  | after        | update        | delete student info,id:21               |
| 4  | after        | update        | from:test2,101.00 to:trigger2,106.00    |
| 5  | after        | update        | from:trigger2,106.00 to:trigger2,107.00 |
| 6  | after        | update        | delete student info,id:11               |
| 7  | after        | update        | from:brand,97.50 to:brand,105.50        |
| 8  | after        | update        | from:helen,96.50 to:helen,98.50         |
| 9  | after        | update        | from:lyn,96.00 to:lyn,97.00             |
| 10 | after        | update        | from:sol,97.00 to:sol,97.00             |
| 11 | after        | update        | from:b1,81.00 to:b1,89.00               |
| 12 | after        | update        | from:b2,82.00 to:b2,90.00               |
| 13 | after        | update        | from:c1,71.00 to:c1,76.00               |
| 14 | after        | update        | from:c2,72.50 to:c2,73.50               |
| 15 | after        | update        | from:A,99.00 to:A,100.00                |
+----+--------------+---------------+-----------------------------------------+
15 rows in set

游标的执行过程
按照上面的例子,分析下这个游标的执行过程。

  1. 我们创建了一个游标,数据源取自于student学生表。
  2. 游标中有个指针,当打开游标的时候,会执行游标对应的select语句,这个指针会指向select结果中第一行记录。
  3. 当调用fetch 游标名称时,会获取当前行的数据,如果当前行无数据,会触发NOT FOUND异常。
    当触发NOT FOUND异常的时候,我们可以使用一个变量来标记一下,如上面的:
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET var_done=TRUE;
    将变量var_done的值置为TURE,循环中就可以通过var_done的值控制循环的退出:
    LEAVE select_loop;。
    如果当前行有数据,则将当前行数据存到对应的变量中,并将游标指针指向下一行数据,如下语句:FETCH cur_test INTO var_studentId,var_score;

总结

1、游标用来对查询结果进行遍历处理。
2、游标的使用过程:声明游标、打开游标、遍历游标、关闭游标。
3、游标主要用在循环处理、存储过程、函数中使用,用来查询结果集。
4、游标的缺点是只能一行一行操作,在数据量大的情况下,是不适用的,速度过慢。数据库大部分是面对集合的,业务会比较复杂,而游标使用会有死锁,影响其他的业务操作,不可取。 当数据量大时,使用游标会造成内存不足现象。

AI中台系统设计方案探讨 集成JupyterLab、低代码建模工具(如H2O.ai)、预训练模型库(Hugging Face、PaddleHub)。:通过REST/gRPC接口封装AI能力(如OCR、语音识别),支持流量控制与鉴权(如Kong、Apigee)。:服务注册发现(Consul)、熔断降级(Hystrix)、监控告警(Prometheus+Grafana)。:分布式存储(如HDFS、Ceph)与对象存储(如S3、OSS),支持海量数据高速读写。加密传输(TLS)、动态脱敏(如数据掩码)、访问控制(RBAC)。 阅读详情

相关推荐

别再让PyCharm吃光你的C盘!保姆级教程:安全迁移config、plugins和remote sources到D盘

本文提供了一份详细的PyCharm配置与缓存文件迁移指南,帮助开发者将config、plugins和remote sources等占用大量C盘空间的文件安全转移到D盘。通过修改data.properties文件和正确迁移顺序,确保PyCharm功能不受影响,同时释放宝贵的系统盘空间。

weixin_28836989的博客 423

数据库作业十七 - 练习游标

不同主语言对使用游标的语法也不相同,在此就不说了,想知道的可以去查看相关文档 标准SQL中游标的使用. EXEC SQL DECLARE SX CURSOR FOR SELECT Sno,Sname,Ssex,Sage FROM Student WHERE Sdept = :deptname;--:deptname是前面声明的主变量 --说明游标 EXE...

断点_C的博客 703

Canoe CAPL TCP通信避坑指南:从OnTcpConnect回调不触发到Socket句柄管理

本文详细解析了Canoe CAPL中TCP通信的常见问题与解决方案,包括OnTcpConnect回调不触发的三大原因、Socket句柄管理的内存泄漏风险、数据发送截断规则等。通过实战案例和代码示例,帮助开发者规避TCP通信中的典型陷阱,提升车载网络测试的稳定性和可靠性。

weixin_26976635的博客 358

快进来,详解MySQL游标

虽然我们也可以通过筛选条件 WHERE 和 HAVING,或者是限定返回记录的关键字 LIMIT 返回一条记录,但是,却无法在结果集中像指针一样,向前定位一条记录、向后定位一条记录,或者是随意定位到某一条记录,并对记录的数据进行处理。 这个时候,就可以用到游标。游标,提供了一种灵活的操作方式,让我们能够对结果集中的每一条记录进行定位,并对指向的记录中的数据进行操作的数据结构。游标让 SQL 这种面向集合的语言有了..

知识记录 2546

从零开始:TexLive(Latex)安装与配置全指南

本文提供了一份详尽的TexLive(Latex)安装与配置全指南,旨在帮助用户从零开始快速搭建LaTeX工作环境。内容涵盖从镜像下载、安装步骤详解、环境验证到高效编辑器(如VS Code)配置,并特别强调了中文排版支持与宏包管理,确保用户能顺利处理学术论文等专业文档的排版需求。

weixin_29284885的博客 899

Blender地形建模实战:5步搞定Gazebo仿真地形(附避坑指南)

本文提供了一份详细的Blender地形建模实战指南,旨在帮助开发者快速创建Gazebo仿真地形。文章通过五个核心步骤,从环境准备、地形雕刻、模型优化导出,到创建Gazebo模型包及问题排错,系统讲解了如何将Blender中的地形模型成功导入Gazebo进行机器人仿真,并重点分享了关键的避坑经验。

weixin_28475533的博客 340

mysql游标理解

一、MySQL游标的概念1、游标介绍MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解。有数据缓冲的思想:游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。 先有数据基础:游标是在先从数据表中检索出数据之后才能继续灵活操作的技术。 类似于指针:游标类似于指向数据结构堆栈中的指针,用来pop出所指向的数据,并且只能每次取一个。2、...

一只疯狂的蜗牛 8278

自动化测试软件设计:C# + VISA 库实现多接口(GPIB/USB)测试仪器控制

本文介绍了如何利用C#和VISA库开发支持多接口的自动化测试软件。VISA库作为标准化API,能够统一控制GPIB、USB等不同接口的测试设备。文章详细阐述了软件设计目标,包括多接口支持、统一控制、自动化脚本执行等功能。重点讲解了C#中VISA库的安装配置,并提供了设备控制类的核心代码实现,涵盖设备连接、命令发送、响应读取等关键操作。通过具体示例展示了GPIB和USB设备的连接方式,并扩展了自动化测试脚本功能。该方案具有高扩展性和维护性,适用于电子设备测试、生产线检测等多种场景,为自动化测试系统开发提供了实

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1706

在MySQL中遍历大数据集为什么推荐使用游标?

从事开发的同学应该都知道,如果一个导出数据的需求总数据量在50w左右,没人会通过一条SQL直接查询出所有结果集并保存。因为这个操作会导致代码报出“内存溢出”的错误,通常会选择分页或者游标的方式实现这个需求。

永乐的博客 593

虚拟机Ubuntu连接USRP

笔记本通过网线连接USRP。

xiaozir的博客 2304

Visual Studio调试技巧与实用方法总结(实战经验分享)

本文根据多年的项目实战经验,详细介绍一些Visual Studio常用的高效调试手段与技巧。

dvlinker的技术专栏 3万+

mysql中的游标是什么?作用是什么?

游标是处理逐行数据的工具,适合在存储过程中实现复杂逻辑,但需谨慎使用以避免性能问题。当查询返回多行结果时,游标可以逐行读取数据,适用于需要对每一行数据进行复杂逻辑处理的场景(例如条件判断、计算、更新其他表等)。当简单的 SQL 语句无法直接完成复杂操作时(例如需要基于前一行结果处理下一行),游标提供了一种灵活的处理方式。它的作用类似于编程语言中的迭代器,允许遍历查询返回的多行数据,并对每一行执行特定操作。游标通常与存储过程结合使用,用于在数据库服务端直接处理查询结果,避免将大量数据传输到客户端。

lyzchengxuyuan的博客 523

【ROS2】机械臂MoveIt2

navigation2 专注于移动机器人的导航与定位,处理大范围空间的底盘运动;MoveIt2 专注于机械臂的操作规划,处理多关节协同的末端执行器运动。在复合机器人(如,移动机械臂)navigation2 负责移动到目标区域,MoveIt2 负责机械臂抓取。官网:https://moveit.picknik.ai/main/index.html。

郭老二 589

mysql 游标的作用_MySQL 游标的作用与使用相关

MySQL 游标的作用与使用相关,游标,遍历,数据,指针,声明MySQL 游标的作用与使用相关易采站长站,站长之家为您整理了MySQL 游标的作用与使用相关的相关内容。定义我们经常会遇到这样的一种情况,需要对我们查询的结果进行遍历操作,并对遍历到的每一条数据进行处理,这时候就会使用到游标。所以:游标(Cursor)是处理数据的一种存储在MySQL服务器上的数据库查询方法,为了查看或者处理结果集中的...

weixin_36180385的博客 335

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

mysql 游標_MySQL 游标的作用与使用相关

MySQL 游标的作用与使用相关2021-01-22 22:56:00定义我们经常会遇到这样的一种情况,需要对我们查询的结果进行遍历操作,并对遍历到的每一条数据进行处理,这时候就会使用到游标。所以:游标(Cursor)是处理数据的一种存储在MySQL服务器上的数据库查询方法,为了查看或者处理结果集中的数据,提供了在结果集中一次一行遍历数据的能力。游标主要用在循环处理、存储过程、函数、触发器 中。游...

weixin_32155269的博客 281

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

mysql leave的作用_MySQL 游标的作用与使用相关

定义我们经常会遇到这样的一种情况,需要对我们查询的结果进行遍历操作,并对遍历到的每一条数据进行处理,这时候就会使用到游标。所以:游标(Cursor)是处理数据的一种存储在MySQL服务器上的数据库查询方法,为了查看或者处理结果集中的数据,提供了在结果集中一次一行遍历数据的能力。游标主要用在循环处理、存储过程、函数、触发器 中。游标的作用比如我们上面那个students学生,需要对每个用户进行遍历,...

weixin_30695203的博客 533

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

mysql 指针应用_MySQL 游标的作用与使用相关

定义我们经常会遇到这样的一种情况,需要对我们查询的结果进行遍历操作,并对遍历到的每一条数据进行处理,这时候就会使用到游标。所以:游标(Cursor)是处理数据的一种存储在MySQL服务器上的数据库查询方法,为了查看或者处理结果集中的数据,提供了在结果集中一次一行遍历数据的能力。游标主要用在循环处理、存储过程、函数、触发器 中。游标的作用比如我们上面那个students学生,需要...

weixin_36140403的博客 288

mysql 代码块游标_MySql存储过程—七、游标(Cursor)

mysql存储过程—7、游标(Cursor)1、游标的作用及属性游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作;游标有下面这些属性:a、游标是只读的,也就是不能更新它;b、游标是不能滚动的,也就是只能在一个方向上进行遍历,不能在记录之间随意进退,不能跳过某些记录;c、避免在已经打开游标的表上更新数据。2、如何使用游标使用游标需要遵循下面步骤:a、首先用DECLARE语句声明...

weixin_39822673的博客 204

Mysql存储过程和存储函数

存储过程和函数概念相关操作创建调用查看删除语法变量的定义与赋值if条件判断参数case结构 概念 存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和函数可以简化应用开 发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 Mysql是从5.0版本开始支持存储过程和函数的。 存储过程和函数的区别在于函数必须有返回值,而存储过程没有。 函数 : 是一个有返回值的过程 ; 过程 : 是一个没有返回值的函数 ; 对于存储过程或函数在进行操

qq_43941925的博客 783

【MySQL进阶】存储过程及存储函数

MySQL高级进阶

Chovy_pyc的博客 1229

MYSQL笔记21-25

创建和操纵表 创建表 一般有两种创建表的方法: 使用具有交互式创建和管理表的工具 表也可以用Mysql语句操纵 为了用程序创建表,可使用SQL的CREATE TABLE语句,实际上我们在使用navicat等交互式工具时,实际上也是在使用MYSQL语句,界面工具会自动生成并执行相应的MySQL语句; 表创建基础 利用CREATE TABLE创建表,需要给出下列信息: 新表的名字,在关键字CREATE TABLE之后给出; 表列的名字和定义,用逗号分隔。 CREATE TABLE语句也可以包含其他关键字或

qq_29498749的博客 320

MySQL 存储过程

MySQL 存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升 一、存储过程概述 1.1、什么是存储过程 存储过程是数据库中的一个重要...

qq_52804302的博客 100

数据库学习记录2

【单选题】SELECT CEILING(-14.7), CEILING(14.7)的结果是( )。【单选题】SELECT CONCAT("I","love","mysql")的结果是()。【单选题】SELECT FLOOR(-14.7), FLOOR(14.7)的结果是( )。【单选题】关于DATETIME与TIMESTAMP两种数据类型的描述,错误的是()(2.0分)【单选题】MySQL中,触发器触发的时机有哪两种______。【单选题】Mysql中使用以下哪个函数可返回当前日期和时间()(2.0分)

qq_62859708的博客 387

oracle面试题I

1,delete 与Truncate区别? 1)Truncate 是DDL 语句,DELETE 是DML语句。 2) Truncate 的速度远快于DELETE; 原因是: 当执行DELETE操作时所有表数据先被COPY到回滚表空间,数据量不同花费时间长短不一。而TRUNCATE 是直接删除数据不进回滚表空间。 3) delete 数据可以运行Rollback 进行数据回滚。而Truncat...

wyqwilliam的博客 193

MySQL中使用游标

这个过程实际上没有检索数据,它只是定义要使用的 SELECT语句和游标选项。一旦声明,就必须。

i_cant_qiao_chu的博客 1212

MySQL 游标

该语句声明一个游标并将其 SELECT 语句结果集关联起来。要稍后获取行,请使用 FETCH 语句。SELECT 语句检索的列数必须与 FETCH 语句中指定的输出变量数匹配。SELECT 语句不能有 INTO 子句。存储程序可以包含多个游标声明,但给定块中声明的每个游标必须具有唯一的名称。

Doublelv 的博客专栏。 3960
上一篇: SpringMVC拦截器源码解析
下一篇: [redis 源码走读] 事件 - 文件事件
sxudong2010
博客等级 码龄9年 27粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值