【零】各种语言中的流程控制语句
【1】Python
if 条件:
子代码
elif 条件:
子代码
else:
子代码
【2】JavaScript
if(条件){
子代码
}else if(条件){
子代码
}else{
子代码
}
【3】MySQL
- if 语句
if 条件 then
子代码
elseif 条件 then
子代码
else
子代码
end if;
- while 语句
DECLARE num INT ;
SET num = 0 ;
WHILE num < 10 DO
SELECT num ;
SET num = num + 1 ;
END WHILE ;
【一】什么是流程控制
CASE
:根据表达式的值来决定返回哪个结果。它主要用于处理非确定性的情况,例如用户选择不同的选项或者数据库中存在不同的数据。IF
和ELSE
:根据条件判断是否执行某个操作。它主要用于简单的逻辑判断。WHILE
和UNTIL
:当某条件满足时重复执行一段代码。它可以用于循环执行某个操作直到满足某个条件为止。FOR
:重复执行一段代码直到满足结束条件。它主要用于遍历数组或集合。
【二】IF语句
【1】介绍
- IF语句用于在满足条件时执行一组语句,否则执行另一组语句。它的基本语法如下:
IF condition THEN
statements;
ELSE
statements;
END IF;
- 其中,condition是一个条件表达式,如果为真,则执行第一组语句;否则执行第二组语句。
【2】示例
SELECT
IFNULL(Bonus, 0) AS Bonus
FROM
Employees;
- 检查员工的奖金是否存在,如果不存在则返回0。
【三】CASE语句
【1】介绍
- CASE语句用于基于多个条件执行不同的操作。它分为两种形式:
- 简单CASE和搜索CASE。
【2】简单CASE语句的基本语法
CASE expression
WHEN value1 THEN
statements;
WHEN value2 THEN
statements;
...
ELSE
statements;
END CASE;
- 其中,expression是待比较的表达式,当它等于某个值时,执行相应的语句。
【3】搜索CASE语句的基本语法
CASE
WHEN condition1 THEN
statements;
WHEN condition2 THEN
statements;
...
ELSE
statements;
END CASE;
- 在搜索CASE语句中,每个WHEN子句后面跟着一个条件表达式,当某个条件为真时,执行相应的语句。
【4】示例
SELECT
CASE
WHEN Salary > 5000 THEN 'High'
ELSE 'Low'
END AS SalaryGroup,
COUNT(*) AS EmployeeCount
FROM
Employees
GROUP BY
SalaryGroup;
- 根据员工的薪水将其分为“高薪”和“低薪”两类,并统计每类员工的数量。
【四】WHILE语句
【1】介绍
- WHILE语句允许你在满足条件的情况下反复执行一组语句。它的基本语法如下:
WHILE condition DO
statements;
END WHILE;
- 只要condition为真,statements将被不断执行。
【2】示例
SET i = 1;
WHILE i <= 5 DO
SELECT CONCAT('The number is: ', i) AS Number;
SET i = i + 1;
END WHILE;
- 在这个例子中,我们反复打印出数字1到5。
【五】LOOP语句
【1】介绍
- LOOP语句用于无限循环执行一组语句,直到遇到LEAVE语句或满足特定条件时才退出循环。它的基本语法如下:
LOOP
statements;
IF condition THEN
LEAVE;
END IF;
END LOOP;
- 你可以在循环中使用
LEAVE
语句来手动退出循环。
【2】示例
SET i = 1;
LOOP
SELECT CONCAT('The number is: ', i) AS Number;
SET i = i + 1;
IF i > 10 THEN
LEAVE;
END IF;
END LOOP;
【六】FOR语句
【1】介绍
- FOR语句是一种特殊的循环语句,它可以让你在一组范围内迭代并执行一系列语句。它的基本语法如下:
FOR var IN start, increment, end DO
statements;
END FOR;
- 这个语句会从start开始,每次递增increment的值,一直循环到end,然后退出循环。
【2】示例
SET i = 1;
FOR j IN 1, 2, 6 DO
SELECT CONCAT('The number is: ', i) AS Number;
SET i = i * j;
END FOR;
- 在这个例子中,我们计算1到6的所有数的乘积,并在每次迭代后打印当前的乘积。
【六】模板参考
【1】if 判断
DELIMITER //
CREATE PROCEDURE proc_if()
BEGIN
DECLARE i INT DEFAULT 0;
IF i = 1 THEN
SELECT 1;
ELSEIF i = 2 THEN
SELECT 2;
ELSE
SELECT 7;
END IF;
END //
DELIMITER ;
【2】while 循环
DELIMITER //
CREATE PROCEDURE proc_while()
BEGIN
DECLARE num INT DEFAULT 0;
WHILE num < 10 DO
SELECT num;
SET num = num + 1;
END WHILE;
END //
DELIMITER ;
标签:语句,CASE,END,进阶,WHILE,num,statements,MySQL,19.0
From: https://www.cnblogs.com/dream-ze/p/17995430