`
phpseyo
  • 浏览: 157038 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

Mysql存储过程游标和SQL语句

阅读更多

可以用在存储过程的SQL语句主要有以下类型:
1、 无返回结果语句,如:INSERT,UPDATE,DROP, DELETE等
2、 select语句返回单行变量并可传给本地变量(select ..into)
3、 返回多行结果集的select语句,并可使用游标循环处理
注意,存储过程返回的多行结果集,可以被客户端程序(如php)所接收,但要在一个存储过程中接收另一个存储过程的结果集是不可能的,一般解决办法是存入临时表供其它过程共用
4、 prepare语句 以下主要讲述游标及prepare部分 游标
定义 DECLARE cursor_name CURSOR FOR SELECT_statement; 游标操作


OPEN 打开游标
    OPEN cursor_name;


FETCH 获取游标当前指针的记录,并传给指定变量列表,注意变量数必须与游标返回的字段数一致,要获得多行数据,使用循环语句去执行FETCH
    FETCH cursor_name INTO variable list; CLOSE关闭游标 CLOSE cursor_name ; 完整例子:

/*定义游标*/

DECLARE dept_csr CURSOR FOR SELECT department_id,department_name, location FROM departments;

/*错误处理*/

DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;

SET no_more_departments=0;

OPEN dept_csr;/*打开游标*/

REPEAT

/*获得结果*/

FETCH dept_csr INTO l_department_id,l_department_name,l_location;

UNTIL no_more_departments

END REPEAT;

CLOSE dept_csr; /*关闭游标*/

SET no_more_departments=0;


注意:mysql的游标是向前只读的,也就是说,你只能顺序地从开始往后读取结果集,不能从后往前,也不能直接跳到中间的记录. Prepare语句 语法


PREPARE statement_name FROM sql_text /*定义*/

EXECUTE statement_name [USING variable [,variable...]] /*执行预处理语句*/

DEALLOCATE PREPARE statement_name /*删除定义*/



mysql> PREPARE prod_insert_stmt FROM "INSERT INTO product_codes VALUES(?,?)";
mysql> SET @code='QB';
mysql> SET @name='MySQL Query Browser';
mysql> EXECUTE prod_insert_stmt USING @code,@name;
mysql> SET @name='MySQL Administrator';
mysql> EXECUTE prod_insert_stmt USING @code,@name;
mysql> DEALLOCATE PREPARE prod_insert_stmt; 
分享到:
评论

相关推荐

    sql语句拼接+游标技术

    sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术

    Mysql中sql语句游标详解

    详细讲解了mysql中游标的使用方法,希望能对各位有所帮助。

    mysql复杂存储过程实例(游标、临时表、循环、递归)

    本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。

    数据库原理及应用-第8章数据库编程.pdf

    Database Principle and Application 第八章 数据库编程 第八章 数据库编程 8.1 嵌入式SQL 8.2 存储过程 8.3 ODBC编程 8.4 小结 8.1 嵌入式SQL 这两种方式细节上有差别,在程序设计的环境下, SQL语句要做某些必要的...

    mysql存储过程之游标(DECLARE)原理与用法详解

    本文实例讲述了mysql存储过程之游标(DECLARE)原理与用法。分享给大家供大家参考,具体如下: 我们在处理存储过程中的结果集时,可以使用游标,因为游标允许我们迭代查询返回的一组行,并相应地处理每行。mysql的...

    mysql数据库语句代码实例.rar_mysql数据库语句_图书管理mysql_增删查改基本sql语句_存储过程_数据库和代码

    1.基于图书馆管理系统的mysql语句的基本增删查改范例 2.调用和创建存储过程基本例子 3.调用游标和多表连接范例 4.实现数据库备份范例

    MySQL存储过程中使用WHILE循环语句的方法

    本文实例讲述了MySQL存储过程中使用WHILE循环语句的方法。分享给大家供大家参考。具体如下: mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE myProc() -> BEGIN -> -> DECLARE i int; -> SET i=1;...

    详解Mysql 游标的用法及其作用

    [mysql游标的用法及作用] 例子: 当前有三张表A、B、C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中; 常规思路就是将B中查询出来然后通过一个update语句来更新C表就可以了,但是B表中有...

    sql总结.doc

    在Oracle中,触发器是一种特殊的存储过程,也是由一组sql语句以及一些业务逻辑代码组成的。数据库可以通过增、删、改来触发触发器。 (2)触发器的基本写法 create or replace trigger tri_adddept AFTER INSERT ...

    MySQL使用游标批量处理进行表操作

    一、概述 本章节介绍使用游标来批量进行表操作,包括批量添加索引、批量添加字段等。...理解MySQL存储过程和函数://www.jb51.net/article/81381.htm 二、正文 1、声明光标 DECLARE cursor_name CURSOR FOR se

    mysql游标的原理与用法实例分析

    本文实例讲述了mysql游标的原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是游标 创建游标 使用游标 首发日期:2018-04-18 什么是游标: 如果你前面看过mysql函数,会发现无法使用返回多行...

    Oracle,SQl,MySql实现分页查询

    通过SQL 查询分析器,显示比较:我的结论是: ...分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用 SELECT u.username FROM `user` u join contact_info c on (u.id=c.user_id) and c.address='123';

    MySQL系列—-创建存储函数、游标的使用

    存储函数不同于存储过程,它有返回值,需要有RETURN语句 输入任意三个数,结果输出它们的最小值 DELIMITER $$ ## 创建存储函数smin CREATE FUNCTION `sj`.`smin`(i INT,j INT,k INT) RETURNS INT BEGIN DECLARE

    MySQL存储过程和函数的操作(十二)

    数据库对象表时存储和操作数据的逻辑结构,而数据库对象存储过程和函数,则是用来实现将一组关于表操作的sql语句当作一个整体来执行。在数据库系统中,当调用存储过程和函数时,则会执行这些对象中所设置的sql语句组...

    细谈Mysql的存储过程和存储函数

    存储过程是一组为了完成某项特定功能的sql语句集,其实质上就是一段存储在数据库中的代码,他可以由声明式的sql语句(如CREATE,UPDATE,SELECT等语句)和过程式sql语句(如IF…THEN…ELSE控制结构语句)组成。存储...

    存储过程:利用游标+临时表实现查询

    1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,...

    oracle mysql 笔记

    oracl函数 事物 游标 存储 mysql分页 sql语句拼写 pl/sql

    mysql 存储过程输入输出参数示例

    drop PROCEDURE if exists my_procedure; create PROCEDURE my_procedure(in my_id int,out my_name... 您可能感兴趣的文章:Mysql存储过程循环内嵌套使用游标示例代码MySQL 存储过程中执行动态SQL语句的方法Mysql存储过

    python数据库编程:Python连接Mssql基础教程之Python库pymssql.pdf

    SQL语句的执⾏基本都在游标上进⾏ cursor.executeXXX⽅法执⾏SQL语句,cursor.fetchXXX获取查询结果等 调⽤close⽅法关闭游标cursor和数据库连接 import pymssql # server 数据库服务器名称或IP # user ⽤户名 # ...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 2_MySQL游标讲解.mp4 │ 3_MySQL触发器.mp4 │ 4_MySQL触发器课堂强化练习.mp4 │ 5_MySQL数字和时间类型.mp4 │ 6_MySQL字符串类型.mp4 │ 7_MySQL存储引擎.mp4 │ 8_MySQL第三范式设计讲解.mp4 │ 9_MySQL...

Global site tag (gtag.js) - Google Analytics