- 浏览: 2682822 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 1482Slow Query Basics: Optimize Dat ... -
HPM Note4, Schema Optimization and Indexing
2009-07-16 18:04 1487Choosing Optimal Data Types Sma ... -
HPM Note3, Benchmarking and Profiling
2009-07-02 14:07 1501Note3, Finding Bottlenecks: Ben ... -
HPM Note2, MySQL Architecture
2009-06-30 17:13 1763MySQL's Logical Architecture Th ... -
HPM Note1,Book Organization
2009-06-23 09:49 1636How This Book Is Organization ... -
MySQL Architecture
2009-01-18 00:12 3105MySQL Core Modules: Server In ... -
MySQL优化笔记
2008-10-28 17:59 3488MySQL 5.1参考手册 :: 7. 优化 一、查询优化 ... -
MySQL里获取当前week、month、quarter的start_date/end_date
2008-10-21 14:14 7460当前week的第一天: select date_sub(cur ... -
mysql里找出一个表的主键被谁作为外键约束
2008-08-13 17:16 2187SELECT ke.referenced_table_n ... -
SQL性能调优:2.1 排序的一般性调优
2008-08-05 10:21 3575影响排序速度的原因(从大到小): 1,选择的行数 2,ORDE ... -
TCP-IP详解笔记1.5 RARP:逆地址解析协议
2008-07-25 14:05 2281from http://www.beyondrails.com ... -
SQL性能调优:1.3 其他语法调优
2008-07-25 13:38 1390from http://www.beyondrails.com ... -
SQL性能调优:1.2 特别语法调优
2008-07-24 12:15 2704from http://www.beyondrails.com ... -
SQL性能调优:1.1 一般性语法调优
2008-07-23 14:47 2542from http://www.beyondrails.com ... -
MySQL存储程序开发最佳实践
2008-05-28 13:56 1692MySQL存储程序开发最佳 ... -
MySQL join的文章
2008-05-28 13:00 1568MySQL的联结(Join)语法 -
MySQL索引系列文章
2008-05-28 12:51 1473MySQL索引使用 MySQL索引 MySQL 5.1参考手册 ... -
MySQL存储程序权限控制
2008-05-28 12:29 1406MySQL存储程序权限控制 MySQL5.0引入了一些管理存 ... -
MySQL的Stored Function和Trigger
2008-05-27 18:58 3131MySQL的Stored Function和Trigger ... -
MySQL内建Function
2008-05-22 17:25 6548MySQL内建Function 在MySQL存储程序(存储过 ...
相关推荐
总的来说,MySQL存储过程中的代码块、条件控制、迭代以及游标和处理器的使用,共同构建了一个强大的数据库编程环境,能够处理复杂的业务逻辑和数据操作。理解并熟练掌握这些概念,对于提升数据库应用的效率和灵活性...
MySQL存储过程是数据库管理系统中的一种重要特性,尤其在MySQL 5.0版本中,它提供了更加强大和灵活的数据处理能力。存储过程是一组预先编译的SQL语句,可以视为数据库中的函数,用于执行特定任务。它们允许开发人员...
本文实例讲述了mysql存储过程之循环语句(WHILE,REPEAT和LOOP)用法。分享给大家供大家参考,具体如下: MySQL提供循环语句,允许我们根据条件重复执行一个SQL代码块其中有三个循环语句:WHILE,REPEAT和LOOP,我们...
MySQL存储过程是数据库编程的重要组成部分,它允许程序员在数据库中执行一系列复杂的操作,包括处理数据、控制流程等。其中,游标(Cursor)是数据库处理过程中用于遍历查询结果集的一种机制,尤其在循环操作中非常...
8. **性能优化**:了解索引、JOIN操作、子查询、存储过程等高级概念,可以帮助提升数据库的查询性能。同时,合理设计数据库架构,避免冗余数据,也是优化的重要方面。 这个压缩包中的代码实例将帮助初学者更好地...
MySQL数据库是当前应用最为广泛的关系型数据库管理系统之一,它支持多种数据类型和存储引擎,同时也提供了丰富的编程接口和复杂的查询语言。在学习MySQL数据库应用与开发时,第七章通常会介绍编程方面的基础知识,...
MySQL存储过程是数据库管理系统提供的一种高级程序设计语言,允许用户在数据库中定义一系列操作,以完成特定的任务。存储过程能够封装复杂的SQL语句,提高代码的重用性,减少网络流量,提高执行效率,同时也增加了...
MySQL存储过程是数据库中一种非常实用的特性,它允许用户定义一组SQL语句,并将其作为一个单元来执行。这种集合操作可以提高效率,减少网络通信,同时使得代码更加模块化和可重复使用。在处理复杂的业务逻辑或需要...
- **if语句**:if语句通常包含一个条件表达式和一个或多个代码块,它们由花括号包围。 - **for循环**:for循环用于迭代执行一段代码,它包含初始化、条件检查和更新部分。 - **while循环**:while循环在条件为真时...
- **功能**:MySQL++ 支持异常处理机制,用于捕获执行过程中出现的错误。 - **示例**:通过抛出异常来处理连接失败、查询错误等问题。 #### 三、教程 **3.1 运行示例** - **步骤**:文档提供了运行示例的方法,...
1.14.2 代码块 1.14.3 else语句 1.14.4 elseif语句 1.14.5 switch语句 1.14.6 比较不同的条件 1.15 通过迭代实现重复动作 1.15.1 while循环 1.15.2 for和foreach循环 1.15.3 do...while循环 1.16 从控制...
MySQL是世界上最流行的开源关系型数据库管理系统之一,而Oracle则是一种功能强大的企业级数据库系统,其PL/SQL语言用于编写存储过程和控制流程。 在MySQL5.0常用命令.pdf中,读者可以学习到MySQL的基础操作和管理...
- **存储过程**:允许用户编写可重复使用的代码块。 - **触发器**:能够在特定事件发生时自动执行代码。 - **全文搜索**:支持全文索引和搜索功能。 - **空间数据类型**:支持地理空间数据存储和查询。 #### 3.3 ...
总之,"VC下操作MySQL数据库"涉及到从安装数据库、配置开发环境到编写代码实现数据交互的全过程。每个环节都需要细心处理,确保所有依赖正确安装,代码逻辑清晰,这样才能在VC中顺利地进行MySQL数据库操作。
- **CREATE PROCEDURE**:创建存储过程,预编译的SQL代码块,可重复使用并接受参数。 - **DROP PROCEDURE**:删除存储过程。 - **CREATE TRIGGER**:创建触发器,自动执行当满足特定事件(如INSERT, UPDATE, ...
1.14.2 代码块 1.14.3 else语句 1.14.4 elseif语句 1.14.5 switch语句 1.14.6 比较不同的条件 1.15 通过迭代实现重复动作 1.15.1 while循环 1.15.2 for和foreach循环 1.15.3 do...while循环 1.16 从控制结构或脚本中...
- **IF-ELSE**: 结构化编程中的条件语句,根据条件执行不同的代码块。 - **CASE**: 用于条件判断的表达式,根据不同的条件返回不同的值。 - **WHILE**: 循环结构,当条件满足时重复执行代码块。 - **CONTINUE**:...
`ResultSet`对象用于存储查询结果,可以通过迭代遍历获取数据。 9. **异常处理**: 在执行数据库操作时,必须妥善处理可能出现的`SQLException`。良好的做法是使用try-catch-finally块,确保资源(如`Connection`、`...