• 极客不落🐒
    2019-07-17
    面向集合思维方式的训练,有个在线的游戏,可以帮忙大家:
    www.setgame.com/puzzle/set.htm

    关于面向集合的思考,《Oracle SQL高级编程》一书里有个专门的章节介绍:
    http://m.ituring.com.cn/article/472

    作者回复: 多谢分享

     1
     10
  • ahazxc
    2019-07-17
    想问下老师,在第二个例子中,第一次游标获取数据后,按条件更新数据后,为啥还要再fetch一遍呢?
     1
     8
  • ABC
    2019-07-18
    老师这些例子是在MySQL的客户端命令行里面运行吗?在navicat里面运行好几个例子都没反应..

    作者回复: 创建的话可以使用Navicat,运行命令的时候可以用MySQL客户端命令行

    
     5
  • 阿恺
    2019-07-18
    例子运行会报告:ERROR 1243 (HY000): Unknown prepared statement handler (cur_hero) given to DEALLOCATE PREPARE。 在MYSQL官网上的例子(https://dev.mysql.com/doc/refman/5.7/en/cursors.html)并没有 DEALLOCATE PREPARE 这一步。我理解DECLARE只是做一个变量声明,就如同DECLARE hp INT。过程结束,应该就是生命周期的结束。精简例子,只有声明CURSOR和释放CURSOR,同样报错。
     1
     4
  • GLADIATOR
    2019-09-16
    英语单词发音可不可以准点,稍微看一下音标
    
     2
  • 大斌
    2019-07-22
    我理解游标的作用:
    在进行一些复杂计算的时候可以使用游标,因为自带的没有这么复杂的计算,需要自己进行定制,

    我理解的面向过程和面向集合的编程方式的区别:
    面向过程是结构化编程,是对解决问题步骤的分析
    面向集合是属于抽象式的,把解决步骤模块化来复用
    展开

    作者回复: 总结的不错

    
     2
  • 夜路破晓
    2019-07-17
    简单理解就是把操作鼠标的动作用存储过程封装起来从而实现面对大批量数据重复操作的自动化。
    这种情况我选择用编程比如python来解决,除非是那种有定期更新要求的定制宽表,可以考虑在定制宽表的基础加个游标以便实现自动化定期更新的要求。

    作者回复: 对的

    
     1
  • 我行我素
    2019-07-17
    不使用游标,使用case when then 也能完成物攻的那个sql吧
     1
     1
  • 林彦
    2019-07-17
    面向集合是通过属性来划分数据获取结果,面向过程是通过对每个/条数据进行处理。
    请问老师文中提到的游标的比较常见的,或能避免其缺点的替代方式有哪些?有哪些场景又必须要用游标?
    谢谢。

    作者回复: 面向集合是一种思维方式,但有些时候 面向过程更容易处理一些具体的细节,比如各种条件判断等,这时就可以采用游标 来对具体的数据进行处理

    
     1
  • Penn
    2019-07-17
    面向过程和面向集合,最终的目的都是得到一个计算结果,不同点是,面向过程通过描述how来计算结果,面向集合通过描述what来获得结果;比如需要计算一篮子豆子中红豆的个数,面向过程时,我可以用眼睛筛选红豆子,也可以用仪器筛选,关键是方法需要自己找;而面向集合只需要喊一声:我要红豆子,问题就解决了,只关心最终的结果
     1
     1
  • 慕城暖阳
    2019-12-30
    老师,在存储过程最后添加释放游标语句为什么会报错?
    
    
  • 旅途
    2019-12-22
    老师 判断游标已经到头的语句 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true; 是怎么和你创建的游标 cur_hero 关联起来的呢 假如存储过程里定义了多个游标 都是靠这一个变量判断吗?
    
    
  • 冲
    2019-11-06
    再次回顾学习一次SQL,游标自我理解就想像鼠标的光标一样可以对每个数据进行扫描,可以到达每个数据的位置。总结游标的使用步骤定义游标,用变量接收游标是否结束,打开游标,游标中取得数据,关闭游标,释放游标。

    作者回复: 对的 像鼠标的光标一样可以对每个数据进行扫描

    
    
  • Coool
    2019-10-23
    复制的老师的代码,但是运行出来,结果都是一样的,求解答?
    id    attack_growth    attack_growth(1)
    10000    12    12
    10001    11    11
    10002    11    11
    10003    8    8
    10004    12    12
    10005    13    13
    10006    10    10
    10007    11    11
    10008    9    9
    10009    9    9
    10010    9    9
    10011    9    9
    10012    9    9
    10013    12    12
    10014    10    10
    10015    8    8
    10016    10    10
    10017    11    11
    10018    12    12
    10019    17    17
    10020    13    13
    10021    16    16
    10022    17    17
    10023    17    17
    10024    16    16
    10025    15    15
    10026    17    17
    10027    15    15
    10028    11    11
    10029    9    9
    10030    12    12
    10031    9    9
    10032    9    9
    10033    9    9
    10034    11    11
    10035    9    9
    10036    9    9
    10037    9    9
    10038    9    9
    10039    11    11
    10040    9    9
    10041    8    8
    10042    10    10
    10043    9    9
    10044    9    9
    10045    10    10
    10046    8    8
    10047    10    10
    10048    10    10
    10049    9    9
    10050    14    14
    10051    15    15
    10052    13    13
    10053    11    11
    10054    15    15
    10055    11    11
    10056    13    13
    10057    13    13
    10058    14    14
    10059    13    13
    10060    13    13
    10061    12    12
    10062    11    11
    10063    11    11
    10064    18    18
    10065    15    15
    10066    15    15
    10067    11    11
    10068    16    16
    展开
    
    
  • 飞翔
    2019-09-24
    老师 游标是不是有防止内存被撑爆的作用, 比如要获取1百万条数据,假设直接都读取到内存中,内存搁不下,使用游标获取1百万条 貌似就没问题

    作者回复: 相当于使用游标在内存中进行寻址,类似指针的作用

    
    
  • Danpier
    2019-07-25

    DEALLOCATE PREPARE 这个查了官方文档5.5和8.0,都说明这个语句是用于释放 PREPARE 语句,而没有提到释放游标,谷歌也没查到相关用法,应该是说错了吧?
    第二个例子 FETCH 放在repeat内部第一行就行,不知为什么要在循环外和循环尾部都加一句?
    
    
  • Ronnyz
    2019-07-24
    在Navicat运行例子出现报错ERROR 1243,解决办法就是去掉 DEALLOCATE PREPARE cur_hero

    作者回复: 对的

    
    
  • 自主
    2019-07-22
    我想问问游标溢出,什么是游标溢出,标准是什么?
    
    
  • linus
    2019-07-19
    第一个示例报如下错,麻烦大佬瞅一下,给个回复,谢谢
    [SQL]call calc_hp_max(10)

    [Err] 1318 - Incorrect number of arguments for PROCEDURE help.calc_hp_max; expected 0, got 1

    作者回复: 使用 call calc_hp_max()

     2
    
  • 华夏
    2019-07-19
    IF temp_growth < 5 THEN
                    IF temp_diff > 200 THEN
                        SET temp_growth = temp_growth * 1.1;
                    ELSEIF temp_diff >= 150 THEN
                        SET temp_growth = temp_growth * 1.08;
                    ELSEIF temp_diff < 150 THEN
                        SET temp_growth = temp_growth * 1.07;
                    END IF;
                ELSEIF temp_growth < 10 THEN
                    SET temp_growth = temp_growth * 1.05;
    条件判断也可以写成这样哈。因为上文if>200,elseif就默认<=200。后面同理。
    展开

    作者回复: Good Job

    
    
我们在线,来聊聊吧