分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

一、表
学生表
CREATE TABLE `t_student` (
   `stuNum` int(11) NOT NULL auto_increment,
   `stuName` varchar(20) default NULL,
   `birthday` date default NULL,
   PRIMARY KEY  (`stuNum`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

学生分数表
CREATE TABLE `t_stu_score` (
   `id` int(11) NOT NULL auto_increment,
   `stuNum` int(11) default NULL,
   `score` decimal(6,2) default NULL,
   PRIMARY KEY  (`id`),
   KEY `FK_t_stu_score` (`stuNum`),
   CONSTRAINT `FK_t_stu_score` FOREIGN KEY (`stuNum`) REFERENCES `t_student` (`stuNum`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

学生详细表
CREATE TABLE `t_stu_detail` (
   `id` int(11) NOT NULL auto_increment,
   `stuName` varchar(20) default NULL,
   `score` decimal(6,2) default NULL,
   PRIMARY KEY  (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

将t_Student和t_stu_score表中满足一定条件的数据插入到t_stu_detail中。

二、过程
DELIMITER &&
 CREATE PROCEDURE proc_AddStuDetail( IN p_score DECIMAL(6,2) )
  BEGIN
DECLARE vstuNum INT;
DECLARE vstuName VARCHAR(20);
DECLARE vbirthday DATE;
DECLARE vscore DECIMAL(6,2);
DECLARE done INT;

-- 定义游标
DECLARE stuCursor CURSOR
FOR
SELECT stuNum,stuName,birthday FROM t_Student;

-- 定义结束标记
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

-- 打开游标
OPEN stuCursor;

-- 循环
stuLoop:LOOP
-- 取游标中的数据
FETCH stuCursor INTO vstuNum,vstuName,vbirthday;
IF done = 1 THEN
LEAVE stuLoop;
END IF;

IF DATE(vbirthday) >= '1990-03-01' THEN
SELECT score INTO vscore FROM t_stu_score WHERE stuNum = vstuNum;
IF vscore >= p_score THEN
INSERT INTO t_stu_detail VALUES(NULL,vstuNum,vscore);
END IF;
END IF;
END LOOP stuLoop;

-- 关闭游标
CLOSE stuCursor;
  END
&&
DELIMITER ;

三、调用过程
CALL proc_AddStuDetail(86);

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

Mysql存储过程中使用cursor相关推荐

  1. mysql扩展中如何处理结果集_我们如何处理MySQL存储过程中的结果集?

    我们可以使用游标来处理存储过程中的结果集.基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行. 为了演示在MySQL存储过程中CURSOR的用法,我们基于以下名为" student_ ...

  2. linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法

    中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题. 1.直接使用insert into语句没问题,能够正常插入汉字. 2.把insert into语句移到Procedu ...

  3. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  4. mysql存储过程中as_Mysql存储过程中的delimiter

    这个命令与存储过程没什么关系吧. 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了. 默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束, ...

  5. MySQL存储过程中的3种循环

    MySQL存储过程中的3种循环 在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易 ...

  6. mysql 存储过程中limit

    mysql 存储过程中limit 1.mysql的高版本(5.5),存储过程中的limit可以使用变量,如下:select * from student limit iStart,iNum; 2.my ...

  7. mysql 存储过程中 if else的使用 和赋值方式

    mysql 存储过程中 if else的使用 和赋值方式 在mysql 中顶一个变量的语法 DECLARE variable_name datatype(size) DEFAULT default_v ...

  8. mysql存储过程set什么意思_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  9. 一 什么是mysql cursor_mysql中的cursor是什么意思?

    text cursor 文本光标 例句 1.Moving the text and cursor vertically or horizontally within the view. 在视图中垂直或 ...

  10. MySQL存储过程中游标使用

    在使用游标的时候,使用LOOP没有响应,后找到使用REPEAT实现,以下是代码: 建表语句 DROP table IF EXISTS test_table; create table test_tab ...

最新文章

  1. 【VLC-Android】LibVLC API简介(相当于VLC的MediaPlayer)
  2. [补档]noip2019集训测试赛(十二)
  3. 文献阅读:《Generative Adversarial Active Learning for Unsupervised Outlier Detection》-2020 trans
  4. 对while((pid = waitpid(-1, stat, WNOHANG)) 0)不懂的地方,现在懂了
  5. poj 2387 Til the Cows Come Home spfa基础题,入门,我的第一个
  6. C#委托之个人理解(转)
  7. 这个高颜值的开源第三方网易云音乐播放器你值得拥有
  8. 运用Python实现猜数字游戏
  9. 转载收集的云计算网络技术
  10. 数据迁移 java_数据迁移的成功策略
  11. 判断一颗二叉树是否为二叉平衡树 python 代码
  12. mysql重装系统后以前的数据_重装系统后 如何使用之前mysql数据
  13. 百度富文本编辑器Ueditor图片上传的注意点
  14. 放回不等概率抽样-PPS抽样
  15. python输入一个正整数、将其按逆序输出_Python实现按照指定要求逆序输出一个数字的方法...
  16. oracle 11g duplicate database基于备份复制数据库(二)
  17. 安装ale_python_interface报错
  18. 360笔试题2019年4月24日(彩球分篮子问题 )
  19. Zynq-Linux移植学习笔记
  20. 【C语言】猜随机数小游戏(知识点:如何产生一个随机值)

热门文章

  1. 使用Ant发布web应用到tomcat
  2. 动机才是需求,问题只是现象
  3. R语言之高级数据分析「聚类分析」
  4. 【bzoj3514】Codechef MARCH14 GERALD07加强版
  5. 区块链开发_比特币开发1
  6. 【Java中级】(五)异常处理
  7. linux设备驱动归纳总结(三):5.阻塞型IO实现【转】
  8. ife task0003学习笔记(三):JavaScript闭包
  9. Load data local infile
  10. 主帅的一道坎?亚洲杯至今已有九位主帅离任