- 浏览: 2652653 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB入门教程 -
shliujing:
楼主在不是精通java和php的前提下,请不要妄下结论。
PHP、CakePHP哪凉快哪呆着去 -
安静听歌:
希望可以一给一点点注释
MySQL存储过程之代码块、条件控制、迭代 -
qq287767957:
PHP是全宇宙最强的语言!
PHP、CakePHP哪凉快哪呆着去 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB入门教程
1,代码块
代码顺序
可以给代码块加lebel,这样END匹配比较直观,还可以用LEAVE语句来终结代码块:
代码块可以嵌套:
LEAVE的例子:
2,条件控制
IF:
例子:
CASE:
例子:
CASE与SELECT语句结合的妙用:
3,迭代
LOOP
REPEAT...UNTIL
WHILE
LEAVE语句
ITERATE语句
嵌套循环
大哥,这个在机子上试过没?
代码顺序
1,变量和条件声明 2,Cursor声明 3,Handler声明 4,程序代码
可以给代码块加lebel,这样END匹配比较直观,还可以用LEAVE语句来终结代码块:
[label:] BEGIN varaiable and condition declarations cursor declarations handler declarations program code END [label];
代码块可以嵌套:
CREATE PROCEDURE nested_blocks() BEGIN DECLARE my_variable varchar(20); SET my_variable='This value was set in the outer block'; BEGIN SET my_variable='This value was set in the inner block'; END; SELECT my_variable, 'Changes in the inner block are visible in the outer block'; END;
LEAVE的例子:
CREATE PROCEDURE nested_blocks() outer_block: BEGIN DECLARE l_status int; SET l_status=1; inner_block: BEGIN IF (l_status=1) THEN LEAVE inner_block; END IF; SELECT 'This statement will never be executed'; END inner_block; SELECT 'End of program'; END outer_block;
2,条件控制
IF:
IF expression THEN commands [ELSEIF expression THEN commands] [ELSE commands] END IF;
例子:
IF (sale_value > 200) THEN CALL free_shipping(sale_id); /*Free shipping*/ IF (customer_status='PLATINUM') THEN CALL apply_discount(sale_id,20); /* 20% discount */ ELSEIF (customer_status='GOLD') THEN CALL apply_discount(sale_id,15); /* 15% discount */ ELSEIF (customer_status='SILVER') THEN CALL apply_discount(sale_id,10); /* 10% discount */ ELSEIF (customer_status='BRONZE') THEN CALL apply_discount(sale_id,5); /* 5% discount*/ END IF; END IF;
CASE:
CASE WHEN condition THEN statements [WHEN condition THEN statements...] [ELSE statements] END CASE;
例子:
CASE WHEN (sale_value>200) THEN CALL free_shipping(sale_id); CASE customer_status WHEN 'PLATINUM' THEN CALL apply_discount(sale_id,20); WHEN 'GOLD' THEN CALL apply_discount(sale_id,15); WHEN 'SILVER' THEN CALL apply_discount(sale_id,10); WHEN 'BRONZE' THEN CALL apply_discount(sale_id,5); END CASE; END CASE;
CASE与SELECT语句结合的妙用:
SELECT (CASE WHEN (t.a = 1 AND t.b = 0) THEN t.c ELSE 'N/A' END) AS result FROM test t order by result asc
3,迭代
LOOP
[label:] LOOP statements END LOOP [label];
REPEAT...UNTIL
[label:] REPEAT statements UNTIL expression END REPEAT [label]
WHILE
[label:] WHILE expression DO statements END WHILE [label]
LEAVE语句
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';
ITERATE语句
SET i=0; loop1: LOOP SET i=i+1; IF i>=10 THEN /*Last number - exit loop*/ LEAVE loop1; ELSEIF MOD(i, 2)=0 THEN /*Even number - try again*/ ITERATE loop1; END IF; SELECT CONCAT(i, " is an odd number"); END LOOP loop1;
嵌套循环
DECLARE i, j INT DEFAULT 1; outer_loop: LOOP SET j=1; inner_loop: LOOP SELECT concat(i, " times ", j, " is ", i*j); SET j=j+1; IF j>12 THEN LEAVE inner_loop; END IF; END LOOP inner_loop; SET i=i+1; IF i>12 THEN LEAVE outer_loop; END IF; END LOOP outer_loop;
评论
2 楼
安静听歌
2016-05-18
希望可以一给一点点注释
1 楼
hyj1254
2011-08-04
引用
CREATE PROCEDURE nested_blocks()
outer_block: BEGIN
DECLARE l_status int;
SET l_status=1;
inner_block: BEGIN
IF (l_status=1) THEN
LEAVE inner_block;
END IF;
SELECT 'This statement will never be executed';
END inner_block;
SELECT 'End of program';
END outer_block;
outer_block: BEGIN
DECLARE l_status int;
SET l_status=1;
inner_block: BEGIN
IF (l_status=1) THEN
LEAVE inner_block;
END IF;
SELECT 'This statement will never be executed';
END inner_block;
SELECT 'End of program';
END outer_block;
大哥,这个在机子上试过没?
发表评论
-
HPM Note5, Query Performance Optimization
2009-07-21 18:05 1439Slow Query Basics: Optimize Dat ... -
HPM Note4, Schema Optimization and Indexing
2009-07-16 18:04 1435Choosing Optimal Data Types Sma ... -
HPM Note3, Benchmarking and Profiling
2009-07-02 14:07 1457Note3, Finding Bottlenecks: Ben ... -
HPM Note2, MySQL Architecture
2009-06-30 17:13 1721MySQL's Logical Architecture Th ... -
HPM Note1,Book Organization
2009-06-23 09:49 1585How This Book Is Organization ... -
MySQL Architecture
2009-01-18 00:12 3057MySQL Core Modules: Server In ... -
MySQL优化笔记
2008-10-28 17:59 3410MySQL 5.1参考手册 :: 7. 优化 一、查询优化 ... -
MySQL里获取当前week、month、quarter的start_date/end_date
2008-10-21 14:14 7406当前week的第一天: select date_sub(cur ... -
mysql里找出一个表的主键被谁作为外键约束
2008-08-13 17:16 2147SELECT ke.referenced_table_n ... -
SQL性能调优:2.1 排序的一般性调优
2008-08-05 10:21 3536影响排序速度的原因(从大到小): 1,选择的行数 2,ORDE ... -
TCP-IP详解笔记1.5 RARP:逆地址解析协议
2008-07-25 14:05 2236from http://www.beyondrails.com ... -
SQL性能调优:1.3 其他语法调优
2008-07-25 13:38 1346from http://www.beyondrails.com ... -
SQL性能调优:1.2 特别语法调优
2008-07-24 12:15 2663from http://www.beyondrails.com ... -
SQL性能调优:1.1 一般性语法调优
2008-07-23 14:47 2470from http://www.beyondrails.com ... -
MySQL存储程序开发最佳实践
2008-05-28 13:56 1660MySQL存储程序开发最佳 ... -
MySQL join的文章
2008-05-28 13:00 1537MySQL的联结(Join)语法 -
MySQL索引系列文章
2008-05-28 12:51 1432MySQL索引使用 MySQL索引 MySQL 5.1参考手册 ... -
MySQL存储程序权限控制
2008-05-28 12:29 1361MySQL存储程序权限控制 MySQL5.0引入了一些管理存 ... -
MySQL的Stored Function和Trigger
2008-05-27 18:58 3078MySQL的Stored Function和Trigger ... -
MySQL内建Function
2008-05-22 17:25 6449MySQL内建Function 在MySQL存储程序(存储过 ...
相关推荐
mysql存储过程之代码块条件控制迭代.docx
MySql 分页 存储过程 MySql 分页 存储过程 MySql 分页 存储过程
本文实例讲述了mysql存储过程之返回多个值的方法。分享给大家供大家参考,具体如下: mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的...
资源包中囊括了MySQL数据库中的存储过程的...该资源下所有内容都是本人的日常软件开发经验总结,对于初学者使用MySQL存储过程的程序员具有重要参考价值,问大家要10分是不过分的,用过就知道了,欢迎大家下载参考及使用
Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三种循环等等) Mysql存储过程常用语句模板(含变量,if,三...
Java调用Mysql存储过程,Mysql存储过程源代码在该项目根目录下。
mysql经典教程+mysql存储过程讲解 重点讲解Mysql的存储过程,触发器,游标的使用 对mysql不太熟的朋友可以好好学习。。。
mysql存储过程实现分页 mysql存储过程实现分页 mysql存储过程实现分页 mysql存储过程实现分页
MySQL存储过程学习 MySQL存储过程 MySQL存储过程
c++实现调mysql存储过程,实现存储过程的出参入参,可以支持查询多数据返回,还有存储过程的复杂数据的增删改等
本文实例讲述了MySQL存储过程的异常处理方法。分享给大家供大家参考。具体如下: mysql> mysql> delimiter $$ mysql> mysql> CREATE PROCEDURE myProc -> (p_first_name VARCHAR(30), -> p_last_name VARCHAR(30)...
MySQL存储过程 MySQL存储过程 MySQL存储过程 MySQL存储过程 MySQL存储过程
mysql中文手册.chm+mysql命令大全.chm+mysql存储过程.pdf
mysql存储过程 mysql存储过程 mysql存储过程 mysql存储过程
MySQL存储过程经典教程MySQL存储过程经典教程MySQL存储过程经典教程MySQL存储过程经典教程MySQL存储过程经典教程MySQL存储过程经典教程
MySQL存储过程编程 可以看看 数据库 存储过程
mysql存储过程ppt
mysql存储过程,存储函数练习,里面有详细代码,供大家参考
内容概述:通过MySQL存储过程实战的例子,学会使用MySQL存储过程。包含以下内容: 创建无参存储过程、有参存储过程、IF-ELSE存储过程、WHILE循环存储过程、CASE-WHEN条件控制存储过程、REPEAT UNTIL循环存储过程、...