本文转载自: http://www.111cn.net/database/mysql/38878.htm
mysql教程 procedure存储过程循环,条件判断实例
mysql> delimiter $$
mysql> CREATE PROCEDURE myProc()
-> DETERMINISTIC
-> BEGIN
-> DECLARE counter INT DEFAULT 0;
->
-> simple_loop: LOOP
-> SET counter=counter+1;
-> select counter;
-> IF counter=10 THEN
-> LEAVE simple_loop;
-> END IF;
-> END LOOP simple_loop;
-> SELECT 'I can count to 10';
-> END$$
Query OK, 0 rows affected (0.00 sec)mysql>
mysql> delimiter ;
mysql>
mysql> call myProc();
+---------+
| counter |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)+---------+
| counter |
+---------+
| 2 |
+---------+
1 row in set (0.02 sec)+---------+
| counter |
+---------+
| 3 |
+---------+
1 row in set (0.02 sec)+---------+
| counter |
+---------+
| 4 |
+---------+
1 row in set (0.02 sec)+---------+
| counter |
+---------+
| 5 |
+---------+
1 row in set (0.02 sec)+---------+
| counter |
+---------+
| 6 |
+---------+
1 row in set (0.02 sec)+---------+
| counter |
+---------+
| 7 |
+---------+
1 row in set (0.02 sec)+---------+
| counter |
+---------+
| 8 |
+---------+
1 row in set (0.02 sec)+---------+
| counter |
+---------+
| 9 |
+---------+
1 row in set (0.33 sec)+---------+
| counter |
+---------+
| 10 |
+---------+
1 row in set (0.33 sec)+-------------------+
| I can count to 10 |
+-------------------+
| I can count to 10 |
+-------------------+
1 row in set (0.33 sec)Query OK, 0 rows affected (0.33 sec)
实例二
mysql> CREATE PROCEDURE myProc()
-> BEGIN
-> DECLARE i int;
-> SET i=1;
-> myloop: LOOP
-> SET i=i+1;
-> IF i=10 THEN
-> LEAVE myloop;
-> END IF;
-> END LOOP myloop;
-> SELECT 'I can count to 10';
->
-> END$$
Query OK, 0 rows affected (0.00 sec)mysql>
mysql> delimiter ;
mysql>
mysql> call myProc();
+-------------------+
| I can count to 10 |
+-------------------+
| I can count to 10 |
+-------------------+
1 row in set (0.00 sec)Query OK, 0 rows affected (0.00 sec
带有条件
mysql> create procedure increment (IN in_count INT)
-> BEGIN
-> declare count INT default 0;
->
-> increment: loop
-> set count = count + 1;
-> if count < 20 then
-> iterate increment;
-> end if;
-> if count > in_count then
-> leave increment;
-> end if;
-> end loop increment;
-> select count;
-> END
-> //
Query OK, 0 rows affected (0.00 sec)mysql>
mysql> delimiter ;
mysql> call increment(3);
+-------+
| count |
+-------+
| 20 |
+-------+
1 row in set (0.00 sec)Query OK, 0 rows affected (0.00 sec)
相关推荐
1. **增强SQL的功能与灵活性**:存储过程可以使用流程控制语句,这使得它能够执行复杂的逻辑处理,比如条件分支和循环等。 2. **组件化编程**:一旦存储过程被创建,就可以在多个地方重复调用而无需重新编写相同的...
在创建存储过程的过程中,可以使用各种SQL语句,包括条件判断、循环等控制语句,以及对数据的插入、查询、更新和删除等操作。存储过程可以包含输入参数(in)、输出参数(out)以及输入输出参数(inout)。在上述...
存储过程可以包含控制流语句,如条件判断(IF-ELSE)和循环(WHILE, FOR),使得复杂的业务逻辑能够在数据库层面实现,而无需过多依赖应用程序。此外,存储过程还可以具有参数,允许灵活地传入和传出数据,增强了其...
存储过程内部使用了一个无限循环,但通过`break`语句控制在特定条件下退出循环。条件是当满足`ProWage`表中工资大于等于`@PWage`的记录数超过总数的一半时,才会执行加薪操作。这通过`IF`语句和两个`COUNT(*)`查询来...
5. **复杂逻辑处理**:存储过程可以包含复杂的逻辑处理,如循环、条件判断等。 ### MySQL 5.0 特性 MySQL 5.0 版本增加了许多新的特性,其中存储过程的引入尤为显著。以下是一些值得关注的新特性: 1. **增强的 ...
MySQL 5.0中新增了用于存储过程的SQL语句,如`CREATE PROCEDURE`和`DROP PROCEDURE`,用于创建和删除存储过程。 #### 范围 存储过程中的变量和局部变量具有特定的作用域,理解变量的生命周期和作用域对于正确编写...
3. **流程控制**:在存储过程中,可以使用流程控制语句如IF-ELSE、CASE、WHILE、BEGIN-END等来实现条件判断和循环。 4. **游标**:游标允许在存储过程中逐行处理结果集,这对于遍历和修改数据非常有用。 5. **事务...
本文实例讲述了mysql存储过程之循环语句(WHILE,REPEAT和LOOP)用法。分享给大家供大家参考,具体如下: MySQL提供循环语句,允许我们根据条件重复执行一个SQL代码块其中有三个循环语句:WHILE,REPEAT和LOOP,我们...
3. **语句块**:存储过程的主体部分由`BEGIN`和`END`包围,可以包含SQL查询、条件判断、循环等控制结构。 4. **语句结束符**:在定义存储过程时,由于内部语句可能需要分号结束,因此通常会临时改变语句结束符,...
本篇文章将深入探讨SQL存储过程的学习与实例,以帮助你更好地理解和应用这一强大的数据库编程工具。 一、SQL存储过程的概念与优势 1. 存储过程是一种预编译的SQL语句集,它封装了复杂的业务逻辑,允许一次性提交多...
4. **流程控制**:包括条件判断(IF-ELSE)、循环(WHILE、FOR、REPEAT)、退出语句(LEAVE)等。 5. **返回值**:使用`RETURN`语句可以为存储过程指定一个返回值。 6. **游标**:在存储过程中处理多行数据时,游标...
3. **循环与控制流**:存储过程支持流程控制结构,如IF-ELSE、CASE、WHILE、FOR等,这使得在存储过程内部实现逻辑判断和循环变得可能,增强了程序的可读性和可维护性。 4. **异常处理**:MySQL 5.0引入了TRY-CATCH...
本文实例讲述了MySQL实现创建存储过程并循环添加记录的方法。分享给大家供大家参考,具体如下: 先创建,然后调用: -- 创建存储过程 DELIMITER;// create procedure myproc() begin declare num int; set num=1; ...
此外,还可以创建复杂的存储过程,如带有循环、条件判断的存储过程,或者涉及多表操作的存储过程。 在实践中,了解如何在各种数据库系统(如MySQL、SQL Server、Oracle等)中创建和调用存储过程也是重要的。每个...
### MySQL存储过程详解 #### 一、存储过程概述 存储过程是数据库中一种重要的功能,它允许用户将一系列SQL命令封装在一起,形成可重复使用的代码块。MySQL自5.0版本开始支持存储过程,这对于提高应用程序性能、...
5. **游标与循环**:存储过程中可以使用游标(cursor)遍历查询结果,配合`DECLARE`, `OPEN`, `FETCH`, `CLOSE`等语句实现循环处理。 通过深入学习和实践这些MySQL命令和存储过程,你可以更加熟练地管理和操作...
相比单一的SQL语句,存储过程可以进行流程控制,如条件判断、循环等,适合执行那些需要多步骤执行的复杂数据库操作。 定义存储过程: 在MySQL中定义存储过程使用CREATE PROCEDURE语句,可以指定输入参数和输出参数...
这个存储过程的实例展示了如何在MySQL中结合使用存储过程和事务来批量插入数据,并通过异常处理机制确保数据的完整性和一致性。这种方式特别适用于需要执行大量操作且需要确保数据一致性的场景。