您的位置:首页 > 数据库 > MySQL

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
语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: