可以用在存储过程的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 语句和逻辑处理。 #### 二、创建存储过程 创建存储过程需要用到 `CREATE PROCEDURE` 语句。以下是一个简单的示例: ```sql CREATE PROCEDURE ...
4. **游标**:Oracle SQL支持游标,MySQL则不直接支持,需要使用存储过程或临时表来实现类似功能。 5. **函数和操作符**:两者内置的函数和操作符有所不同,例如Oracle的NVL对应MySQL的IFNULL,Oracle的TO_DATE对应...
### MySQL中SQL语句游标详解 #### 一、引言 在数据库开发过程中,当开发者需要逐条处理从查询结果集中获取的数据时,游标成为了一种非常实用且强大的工具。本文旨在深入探讨MySQL中游标的概念及其使用方法,帮助...
MySQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集,它可以被保存和重复使用,提高了数据库的效率和可维护性。在本项目实践中,我们将深入学习和运用MySQL的存储过程,同时结合游标这一重要工具进行...
Oracle 存储过程游标是指在 Oracle 数据库中使用游标来实现对结果集的处理和操作。游标可以分为静态游标和REF游标两种类型。静态游标是指结果集已经确实(静态定义)的游标,可以进一步分为隐式游标和显示游标。隐式...
### MySQL游标(循环操作) #### 一、游标简介 在MySQL中,游标是一种数据库对象,主要用于处理存储过程中的结果集。游标允许我们逐行地读取查询结果,这对于需要对每一行数据执行特定操作的情况非常有用。通过...
在MySQL中,存储过程是一种预编译的SQL语句集合,可以用于执行复杂的数据库操作,包括循环和游标的使用。游标允许我们逐行处理查询结果,这对于迭代数据进行处理非常有用。本示例中,我们将探讨如何在存储过程中循环...
MySQL存储过程是数据库管理系统提供的一种集成了SQL语句的编程机制,允许用户创建一组复杂的数据库操作,以便在需要时重复使用。存储过程提高了代码的可重用性,减少了网络流量,并且提供了更好的安全性。从MySQL ...
根据提供的文件信息,本文将详细解释一个MySQL存储过程的例子,其中包含了游标的使用。这个存储过程主要用于处理一批数据,涉及到日期范围内的数据处理、异常处理等。下面将逐一解析存储过程中涉及的重要知识点。 #...
在MySQL数据库中,存储过程是一种预编译的SQL语句集合,可以用于执行复杂的数据库操作。在某些场景下,我们可能需要在存储过程中执行动态构建的SQL语句,以适应不断变化的需求。以下将详细解释如何在MySQL存储过程中...
MySQL中的动态游标是数据库处理过程中非常有用的一个特性,它允许在存储过程中逐行处理查询结果。在本示例中,我们将深入探讨如何在MySQL中使用动态游标,特别是结合存储过程来实现这一功能。 首先,创建了一个名为...
本篇文章将详细讨论在MySQL存储过程中如何使用游标循环,并特别关注如何进行跳出和继续操作。 首先,游标循环通常有三种基本形式:`LOOP`、`REPEAT`和`WHILE`。每种循环结构都有其特定的语法和用途,但核心思想都是...
"Oracle数据库sql转换mysql数据库工具" 提供了解决这一问题的解决方案,允许用户将Oracle数据库中的SQL语句或数据结构转换为MySQL兼容的格式。 在数据库迁移过程中,这样的工具至关重要,因为它可以简化工作流程,...
MySQL游标是数据库管理系统中用于遍历查询结果集的一种机制,尤其在处理大量数据或进行迭代操作时,游标显得尤为重要。这篇博文可能是探讨如何在MySQL中使用游标,特别是当游标执行到最后一行后如何正确地结束循环。...
- 动态查询:基于当前行数据来构建新的SQL语句。 虽然游标提供了灵活性,但它们也可能影响性能,因为每次提取数据都需要数据库交互。因此,在能用集约式操作(如JOINs或GROUP BY)解决问题时,应尽量避免使用游标。...
存储过程是MySQL中的一个重要概念,它是一组预编译的SQL语句,可以在需要时执行。存储过程的好处包括提高性能、减少网络流量、增强安全性、简化复杂的操作和提供模块化的代码。在“MySQL5.0存储过程.pdf”中,你将学...
本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。