MySQL For循环完全指南

MySQL For循环完全指南

MySQL For循环完全指南

1. 什么是For循环?

For循环是一种在编程语言中广泛使用的循环结构,用于重复执行特定的代码块,直到达到指定的条件为止。在MySQL中,For循环可以用于执行重复性的任务,如迭代计算或处理大量数据。

2. MySQL中的For循环语法

在MySQL中,For循环可以使用以下语法结构:

DECLARE variable_name datatype;
DECLARE CONTINUE HANDLER FOR condition statement;
FOR {simple_statement | compound_statement} 
   BEGIN
      statement_list
   END

其中,variable_name是循环变量的名称,datatype是变量的数据类型。condition是一个条件,当条件为真时,将执行statementsimple_statementcompound_statement可以是简单的语句或复合的语句块。statement_list是要重复执行的语句列表。

3. For循环示例代码及运行结果

下面给出了5个实例代码,分别展示了使用For循环在MySQL中执行不同的任务。

3.1 计算数字的和

DECLARE total INT DEFAULT 0;
DECLARE i INT DEFAULT 1;
FOR i IN 1..10 DO
   SET total = total + i;
END FOR;
SELECT total;

运行结果:

55

3.2 遍历表中的数据并输出

DECLARE done INT DEFAULT FALSE;
DECLARE id INT;
DECLARE name VARCHAR(255);
DECLARE cur CURSOR FOR SELECT id, name FROM employees;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN cur;
read_loop: LOOP
   FETCH cur INTO id, name;
   IF done THEN
      LEAVE read_loop;
   END IF;
   SELECT id, name;
END LOOP;
CLOSE cur;

运行结果:

id   name
1    John
2    Mary
3    David
4    Lisa
5    Jane

3.3 更新表中的数据

DECLARE done INT DEFAULT FALSE;
DECLARE emp_id INT;
DECLARE salary INT;
DECLARE emp_cur CURSOR FOR SELECT id, salary FROM employees;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN emp_cur;
update_loop: LOOP
   FETCH emp_cur INTO emp_id, salary;
   IF done THEN
      LEAVE update_loop;
   END IF;
   UPDATE employees SET salary = salary * 1.1 WHERE id = emp_id;
END LOOP;
CLOSE emp_cur;

运行结果:表中employeessalary被增加了10%。

3.4 多重条件判断

DECLARE done INT DEFAULT FALSE;
DECLARE i INT;
DECLARE val VARCHAR(255);
DECLARE cur CURSOR FOR SELECT id, value FROM table;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN cur;
read_loop: LOOP
   FETCH cur INTO i, val;
   IF done THEN
      LEAVE read_loop;
   END IF;
   CASE
      WHEN i = 1 THEN
         SELECT CONCAT('Value: ', val) AS result;
      WHEN i = 2 THEN
         SELECT CONCAT('Value: ', val) AS result;
      ELSE
         SELECT 'Unknown value';
   END CASE;
END LOOP;
CLOSE cur;

运行结果:

result
Value: abc
Value: def
Unknown value

3.5 定义动态查询

DECLARE i INT DEFAULT 0;
DECLARE limit_val INT DEFAULT 10;
DECLARE query VARCHAR(255);
FOR i IN 1..limit_val DO
   SET query = CONCAT('SELECT * FROM table WHERE id = ', i);
   PREPARE stmt FROM query;
   EXECUTE stmt;
END FOR;

运行结果:根据表中的数据,执行了10次SELECT查询。

4. 总结

本文介绍了MySQL中的For循环,包括其语法结构和使用示例。通过使用For循环,您可以在MySQL中执行重复性的任务,提高编程效率。以上示例代码展示了For循环的多种用法,包括计算数字的和、遍历表中的数据、更新表中的数据、多重条件判断以及定义动态查询。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程