zoukankan      html  css  js  c++  java
  • SQL游标造数据

    BEGIN
    /*用于在姓名背后添加编号,并且记录循环次数*/
    DECLARE i INT DEFAULT 0;
    /*创建变量done,done=0表示还没有检索完,done=1表示检索完成*/
    DECLARE done INT DEFAULT 0;
    /*创建变量,保存查询结果中的姓名*/
    DECLARE sname VARCHAR(30) DEFAULT '';
    /*创建变量,保存插入数据中的姓名*/
    DECLARE stuname VARCHAR(30) DEFAULT '';
    /*总成绩*/
    DECLARE sco INT DEFAULT 0;
    /*学号*/
    DECLARE sid INT DEFAULT 0;

    /*为查询语句创建游标mycursor,用来检索查询结果*/
    DECLARE mycursor CURSOR FOR SELECT student.sid,student.Sname,sum(score.score) from student LEFT JOIN score ON student.sid=score.sid GROUP BY student.sid;
    /*每一次检索,都判断是否检索到记录,如果没有,则设置done=1,表示检索完成*/
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
    /*打开游标,开始检索*/
    OPEN mycursor;
    /*循环,检索操作*/
    REPEAT
    /*将检索的内容,保存到变量*/
    FETCH mycursor INTO sid,sname,sco; /*基于需要制造的数据的条数,进行内层循环,将姓名背后根据循环次数加上数字,并且将分数加上循环次数,插入到数据表中*/
    while i < times DO
    /*基于读取出的学生名进行拼接,拼接出刘一1这样的格式*/
    set stuname=CONCAT(sname,i);
    /*向结果表中插入数据,如果已经存在记录,则更新*/
    INSERT INTO CScore VALUES (0,stuname,sco+i);
    /*循环控制变量i自增*/
    set i=i+1;
    /*while循环体结束*/
    end WHILE;
    set i=0;
    /*如果done=1,执行完成,则停止循环*/
    UNTIL done END REPEAT;
    /*关闭游标*/
    CLOSE mycursor;

    END

  • 相关阅读:
    es之零停机重新索引数据
    es之索引的别名操作
    es索引基本操作(2)之 索引映射(mappings)管理和索引库配置管理(settings)
    进程管理(八)-进程控制
    进程管理(七)-进程状态与转换
    进程管理(六)-进程的描述
    numpy数组转置与轴变换
    numpy数组的索引和切片
    numpy数组的运算
    numpy库中数组的数据类型
  • 原文地址:https://www.cnblogs.com/wendy-0901/p/12978601.html
Copyright © 2011-2022 走看看