这里我新建了两个表,一个users和test

 CREATE TABLE users(
username varchar(20),
pwd varchar(30)
);
CREATE TABLE test(
id INT,
username VARCHAR(20)
)

这里向users表中插入了多条数据,主要是为了测试存储过程和游标的使用

1.不带参数的存储过程,从users表中查出所有数据

 BEGIN
SELECT * FROM users;
END

结果和上图一样

2.带参数的存储过程

 BEGIN
SELECT * FROM users WHERE pwd=name_in;
END

这里根据传入的pwd不同结果集不同

3.函数

 RETURN (SELECT users.pwd FROM users WHERE users.username = 'gxf')

下面是游标的使用

这里新建了一个存储过程,并在存储过程中使用游标遍历users表,在遍历的时候向test表中插入一条数据,(1,username)username来自users表中

 BEGIN
DECLARE TEMP_NAME VARCHAR(20) DEFAULT 'GXF';
DECLARE TEMP_PWD VARCHAR(30) DEFAULT '';
DECLARE DONE INT DEFAULT 0;
DECLARE i INT DEFAULT 10; DECLARE cursor_query CURSOR FOR SELECT * FROM users;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = 1; OPEN cursor_query; myLoop : LOOP
FETCH cursor_query INTO TEMP_NAME, TEMP_PWD;
IF DONE = 1 THEN
LEAVE myLoop;
END IF; INSERT INTO test VALUES(1, TEMP_NAME); END LOOP myLoop; CLOSE cursor_query;
END

通过调用使用游标的存储过程后,查询test表

 CALL DATA_QUERY_CURSOR;
SELECT * FROM test;

test表中的记录为

MySQL存储过程、函数和游标的更多相关文章

  1. MySQL中函数、游标、事件、视图

    MySQL中函数.游标.事件.视图基本应用举例(代码) MySQL中function用户自定义函数c,fun,fun是面向过程的实现方式只能传入参数,或不传入参数,不能传出参数,必有返回值函数中是不能 ...

  2. MySQL 存储过程 函数 routine 权限

    MySQL 存储过程 函数 routine 权限 Table of Contents 1. mysql存储过程/函数权限 1.1. 相关对象操作权限检查 1.2. 执行权限 1 mysql存储过程/函 ...

  3. mysql 存储过程中使用游标中使用临时表可以替代数组效果

    mysql不支持数组.但有时候需要组合几张表的数据,在存储过程中,经过比较复杂的运算获取结果直接输出给调用方,比如符合条件的几张表的某些字段的组合计算,mysql临时表可以解决这个问题.临时表:只有在 ...

  4. mysql 存储过程 函数 触发器

    mysql存储过程与函数 存储过程下载  demo mysql> delimiter // -- 这里//为修改默认分隔符: mysql> CREATE PROCEDURE simplep ...

  5. MySQL中函数、游标、事件、视图基本应用举例(代码)

    MySQL中function用户自定义函数c,fun,fun是面向过程的实现方式只能传入参数,或不传入参数,不能传出参数,必有返回值函数中是不能有create table drop table之类的语 ...

  6. mysql存储过程中使用游标

    用户变量一般以@开头,作用于全局范围 局部变量需用 declare 定义格式为 declare 变量名 数据类型 [default value]; mysql 数据类型有 int ,float,dat ...

  7. MySql存储过程—7、游标(Cursor)

    |字号 订阅 1.游标的作用及属性 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作:游标有下面这些属性: a.游标是只读的,也就是不能更新它: b.游标是不能滚动的,也就是只能 ...

  8. Paip.断点调试MYSQL存储过程跟函数的解决方案大法

    Paip.断点调试MYSQL存储过程跟函数的解决方案大法 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn ...

  9. mysql使用存储过程&函数实现批量插入

    写这边文章的目的,是想结合mysql 存储过程+函数完成一个批量删除的功能吧...正好也好加深下对procedure和function的熟练操作吧...废话不多说,我就直接上表结构啦哈,如下: cre ...

  10. MySQL存储过程入门教程

    存储过程介绍 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程可由应用程序通过一个调用来执行,而且 ...

随机推荐

  1. 编写灵活、稳定、高质量的 HTML 和 CSS 代码的规范

    HTML 语法 HTML5 doctype 语言属性(Language attribute) 字符编码 IE 兼容模式 引入 CSS 和 JavaScript 文件 实用为王 属性顺序 布尔(bool ...

  2. Struts2_概述

  3. ASP.NET,web.config 中SessionState的配置

    web Form 网页是基于HTTP的,它们没有状态, 这意味着它们不知道所有的请求是否来自同一台客户端计算机,网页是受到了破坏,以及是否得到了刷新,这样就可能造成信息的丢失. 于是, 状态管理就成了 ...

  4. Java之简单图形面积计算

    设计一个类层次,定义一个抽象类--形状(类名:shape).其中包括求形状的面积抽象方法(方法名:calArea()).继承该抽象类定义三角形(Triangle).矩形(Rectangle).圆(Ci ...

  5. iOS使用keychain存储密码

    iOS设备中的Keychain是一个安全的存储容器.通常情况下,可以用NSUserDefaults存储数据信息,但是对于一些私密信息,比如账号.密码等等,就需要使用更为安全的keychain了.苹果自 ...

  6. websphere中由于实际应用没有卸载干净,导致安装不了。以下是完全卸载应用程序的方法

     出现此问题的原因之一:操作界面上没有卸载完成.进行一下操作:1.删除 $WAS_HOME/profiles/AppSrv01/config/cells/...cell/applications下对应 ...

  7. NodeJs多进程和socket.io通讯-DEMO

    一.开启多进程 const os = require('os'); const cp = require('child_process'); const forkList = {}; const fo ...

  8. chrome源码编译常见的错误解决

    最近编译chrome浏览器源码时,下载源码和一般的设置,网络中都有说明,而且一般的说明都是类似的,然后都说编译成功了,但本人没有试成功,碰到常见的2个错误,记录下,不知道大家碰到没有. 1.pytho ...

  9. Linux下编译安装mysql-5.0.45.tar.gz

    安装环境:VMware9(桥接模式) + Linux bogon 2.6.32-642.3.1.el6.x86_64(查看linux版本信息:uname -a) 先给出MySQL For Linux ...

  10. CSS3选择器:nth-child和:nth-of-type之间的差异

    CSS3选择器:nth-child和:nth-of-type之间的差异 这篇文章发布于 2011年06月21日,星期二,23:04,归类于 css相关. 阅读 57546 次, 今日 143 次 by ...