`
phpseyo
  • 浏览: 158503 次
  • 性别: 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 语句.docx

    通过使用存储过程,开发者可以在一次操作中执行多个 SQL 语句和逻辑处理。 #### 二、创建存储过程 创建存储过程需要用到 `CREATE PROCEDURE` 语句。以下是一个简单的示例: ```sql CREATE PROCEDURE ...

    Oracle Sql语句转换成Mysql Sql语句

    4. **游标**:Oracle SQL支持游标,MySQL则不直接支持,需要使用存储过程或临时表来实现类似功能。 5. **函数和操作符**:两者内置的函数和操作符有所不同,例如Oracle的NVL对应MySQL的IFNULL,Oracle的TO_DATE对应...

    Mysql中sql语句游标详解

    ### MySQL中SQL语句游标详解 #### 一、引言 在数据库开发过程中,当开发者需要逐条处理从查询结果集中获取的数据时,游标成为了一种非常实用且强大的工具。本文旨在深入探讨MySQL中游标的概念及其使用方法,帮助...

    mysql存储过程_游标_项目练习

    MySQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集,它可以被保存和重复使用,提高了数据库的效率和可维护性。在本项目实践中,我们将深入学习和运用MySQL的存储过程,同时结合游标这一重要工具进行...

    Oracle存储过程游标详解

    Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。游标可以分为静态游标和REF游标两种类型。静态游标是指结果集已经确实(静态定义)的游标,可以进一步分为隐式游标和显示游标。隐式...

    Mysql游标(循环操作)

    ### MySQL游标(循环操作) #### 一、游标简介 在MySQL中,游标是一种数据库对象,主要用于处理存储过程中的结果集。游标允许我们逐行地读取查询结果,这对于需要对每一行数据执行特定操作的情况非常有用。通过...

    Mysql存储过程循环内嵌套使用游标示例代码

    在MySQL中,存储过程是一种预编译的SQL语句集合,可以用于执行复杂的数据库操作,包括循环和游标的使用。游标允许我们逐行处理查询结果,这对于迭代数据进行处理非常有用。本示例中,我们将探讨如何在存储过程中循环...

    mysql存储过程 游标 循环使用介绍

    MySQL存储过程是数据库管理系统提供的一种集成了SQL语句的编程机制,允许用户创建一组复杂的数据库操作,以便在需要时重复使用。存储过程提高了代码的可重用性,减少了网络流量,并且提供了更好的安全性。从MySQL ...

    mysql游标存储过程例子

    根据提供的文件信息,本文将详细解释一个MySQL存储过程的例子,其中包含了游标的使用。这个存储过程主要用于处理一批数据,涉及到日期范围内的数据处理、异常处理等。下面将逐一解析存储过程中涉及的重要知识点。 #...

    MySQL 存储过程中执行动态SQL语句的方法

    在MySQL数据库中,存储过程是一种预编译的SQL语句集合,可以用于执行复杂的数据库操作。在某些场景下,我们可能需要在存储过程中执行动态构建的SQL语句,以适应不断变化的需求。以下将详细解释如何在MySQL存储过程中...

    mysql动态游标学习(mysql存储过程游标)

    MySQL中的动态游标是数据库处理过程中非常有用的一个特性,它允许在存储过程中逐行处理查询结果。在本示例中,我们将深入探讨如何在MySQL中使用动态游标,特别是结合存储过程来实现这一功能。 首先,创建了一个名为...

    MySQL存储过程中游标循环的跳出和继续操作示例

    本篇文章将详细讨论在MySQL存储过程中如何使用游标循环,并特别关注如何进行跳出和继续操作。 首先,游标循环通常有三种基本形式:`LOOP`、`REPEAT`和`WHILE`。每种循环结构都有其特定的语法和用途,但核心思想都是...

    Oracle数据库sql转换mysql数据库工具

    "Oracle数据库sql转换mysql数据库工具" 提供了解决这一问题的解决方案,允许用户将Oracle数据库中的SQL语句或数据结构转换为MySQL兼容的格式。 在数据库迁移过程中,这样的工具至关重要,因为它可以简化工作流程,...

    mysql游标实现到了最后一个结束之后结束循环

    MySQL游标是数据库管理系统中用于遍历查询结果集的一种机制,尤其在处理大量数据或进行迭代操作时,游标显得尤为重要。这篇博文可能是探讨如何在MySQL中使用游标,特别是当游标执行到最后一行后如何正确地结束循环。...

    mysql游标

    - 动态查询:基于当前行数据来构建新的SQL语句。 虽然游标提供了灵活性,但它们也可能影响性能,因为每次提取数据都需要数据库交互。因此,在能用集约式操作(如JOINs或GROUP BY)解决问题时,应尽量避免使用游标。...

    mysql经典教程+mysql存储过程讲解

    存储过程是MySQL中的一个重要概念,它是一组预编译的SQL语句,可以在需要时执行。存储过程的好处包括提高性能、减少网络流量、增强安全性、简化复杂的操作和提供模块化的代码。在“MySQL5.0存储过程.pdf”中,你将学...

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

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

Global site tag (gtag.js) - Google Analytics