mysql的存储过程中的语句if 4000 case 循环语句
2017-08-10 14:42
1296 查看
(一)MySQL存储过程的 IF语句语法
IF expression THEN statements; END IF;
使用实例:从
customers表中获得客户的信用额度。
参数:
p_customerlevel用来存储客户的级别,并由调用程序使用。
DELIMITER $$ CREATE PROCEDURE GetCustomerLevel( in p_customerNumber int(11), out p_customerLevel varchar(10)) BEGIN DECLARE creditlim double; SELECT creditlimit INTO creditlim FROM customers WHERE customerNumber = p_customerNumber; IF creditlim > 50000 THEN SET p_customerLevel = 'PLATINUM'; ELSEIF (creditlim <= 50000 AND creditlim >= 10000) THEN SET p_customerLevel = 'GOLD'; ELSEIF creditlim < 10000 THEN SET p_customerLevel = 'SILVER'; END IF; END$$
(二)mysql存储过程之case语句,来看一下简单
CASE语句的语法:
CASE case_expression WHEN when_expression_1 THEN commands WHEN when_expression_2 THEN commands ... ELSE commands END CASE;SQL
您可以使用简单
CASE语句来检查表达式的值与一组唯一值的匹配。
case_expression可以是任何有效的表达式。我们将
case_expression的值与每个
WHEN子句中的
when_expression进行比较,例如
when_expression_1,
when_expression_2等。如果
case_expression和
when_expression_n的值相等,则执行相应的
WHEN分支中的命令(
commands)。如果都不匹配,就执行ELSE
commands语句。
DELIMITER $$ CREATE PROCEDURE GetCustomerShipping( in p_customerNumber int(11), out p_shiping varchar(50)) BEGIN DECLARE customerCountry varchar(50); SELECT country INTO customerCountry FROM customers WHERE customerNumber = p_customerNumber; CASE customerCountry WHEN 'USA' THEN SET p_shiping = '2-day Shipping'; WHEN 'Canada' THEN SET p_shiping = '3-day Shipping'; ELSE SET p_shiping = '5-day Shipping'; END CASE; END$$
(三)MySQL提供循环语句,允许您根据条件重复执行一个SQL代码块。 MySQL中有三个循环语句:
WHILE,
REPEAT和
LOOP。
WHILE循环
WHILE语句的语法如下:
WHILE expression DO statements END WHILE
DELIMITER $$ DROP PROCEDURE IF EXISTS test_mysql_while_loop$$ CREATE PROCEDURE test_mysql_while_loop() BEGIN DECLARE x INT; DECLARE str VARCHAR(255); SET x = 1; SET str = ''; WHILE x <= 5 DO SET str = CONCAT(str,x,','); SET x = x + 1; END WHILE; SELECT str; END$$ DELIMITER ;
REPEAT循环
REPEAT循环语句的语法如下:
REPEAT statements; UNTIL expression END REPEAT
LEAVE语句用于立即退出循环,而无需等待检查条件。
LEAVE语句的工作原理就类似PHP,
C/C++,Java等其他语言的
break语句一样。
ITERATE语句允许您跳过剩下的整个代码并开始新的迭代。
ITERATE语句类似于
PHP,
C/C++,
Java等中的
continue语句。
相关文章推荐
- MySQL存储过程详解 mysql 存储过程,if,while常用语句
- mysql存储过程循环语句简单例子
- MySQL存储过程中使用 WHILE 循环语句的用法
- mysql 存储过程之if语句
- mysql进阶:存储过程中的IF语句(IF THEN ELSEIF THEN ELSE END IF)
- MySQL存储过程中使用WHILE循环语句的方法
- Mysql 存储过程、临时变量定义、IF、Case
- mysql存储过程while循环搭配if elseif选择条件
- MySQL存储过程中使用WHILE循环语句的方法
- 存储过程,触发器,游标,if语句,三种循环
- mySQL语法中的存储过程及if语句的使用简例
- 在SQL SERVER 2005存储过程中,使用循环语句
- MySQL存储过程中的3种循环
- mySQL存储过程怎样执行多条语句?
- MySql存储过程—6、循环
- MySQL 存储过程循环插入数据
- mysql进阶:存储过程中的循环(WHILE DO and FOR LOOP)
- MySQL存储过程的循环控制指令
- Mysql if 和 case 条件语句用法
- Shell if语句,case语句,循环for,until,while语句读书笔记