SQL的控制流语句
【摘要】 控制流语句变量定义在MySQL数据库的函数和存储过程中可以使用DECLARE关键字来定义变量,这些变量的作用范围是BEGIN…END程序体中语法:DECLARE 变量名 变量类型 DEFAULT 默认值例子:DECLARE abc INT DEFAULT 10;变量赋值给BEGIN…END程序体中的变量赋值有两种方法语法:SET 变量名=值;语法:SELECT 属性 INTO 变量名 FRO...
控制流语句
变量定义
在MySQL数据库的函数和存储过程中可以使用DECLARE关键字来定义变量,这些变量的作用范围是BEGIN…END程序体中
语法:DECLARE 变量名 变量类型 DEFAULT 默认值
例子:DECLARE abc INT DEFAULT 10;
变量赋值
给BEGIN…END程序体中的变量赋值有两种方法
语法:SET 变量名=值;
语法:SELECT 属性 INTO 变量名 FROM 表名;
第二种是我们在存储过程中给输出参数赋值的方法
例子:
SET abc=10;
SELECT id INTO abc FROM table;
IF语句(常用在存储过程的程序体中)
IF语句主要用于条件判定,根据条件成立与否,后续执行不同的命令
语法:IF 条件1 THEN …
ELSEIF 条件2 THEN …
ELSE …
END IF
例子:
CREATE PROCEDURE pro(IN x INT)
BEGIN
IF x=1 THEN SELECT 'x is 1';
ELSEIF x=2 THEN SELECT 'x is 2';
ELSE SELECT 'WRONG';
END IF;
END;
CASE语句
CASE语句为多分枝语句结果,从WHEN后面查找与CASE后的变量相等的值,如果找到,执行该分支语句,否则执行ELSE语句
语法:CASE 变量
WHEN 值1 THEN …
WHEN 值2 THEN …
ELSE …
END case(或者是end结尾,当then中不包含select语句的时候)
WHILE语句
WHILE循环语句,判断条件成立与否,如果成立则循环执行程序体
语法:WHILE 条件 DO
…
END WHILE
例子:
CREATE PROCEDURE pro(IN x INT)
BEGIN
WHILE x<5 DO
SELECT 'OK';
SET x=x+1; #x是一个计数器,没有此语句,会进入死循环
END WHILE;
END;
例子:
定义一个存储过程,向tree这个表中插入5条数据
方法一:
CREATE PROCEDURE pro7()
BEGIN
DECLARE a INT;
DECLARE b VARCHAR(20);
SET a=100;
SET b='tree';
WHILE a<105 DO
INSERT INTO tree VALUES(a, CONCAT(b,a));
SET a=a+1;
END WHILE;
END
CALL pro7();
SELECT * FROM tree;
方法二:
CREATE PROCEDURE pro7()
BEGIN
DECLARE a INT default 100;
DECLARE b VARCHAR(20) default 'tree';
WHILE a<105 DO
INSERT INTO tree VALUES(a, CONCAT(b,a));
SET a=a+1;
END WHILE;
END
CALL pro7();
SELECT * FROM tree;
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)