WHILE <조건식> DO
SQL 문장들
END WHILE;
DROP PROCEDURE IF EXISTS whileProc;
DELIMITER $$
CREATE PROCEDURE whileProc()
BEGIN
DECLARE num INT;
DECLARE sum INT;
SET num = 1;
SET sum = 0;
WHILE (num <= 100) DO
SET sum = sum + num;
SET num = num + 1;
END WHILE;
SELECT '1부터 100까지의 합 = ', sum;
END $$
DELIMITER ;
CALL whileProc();

ITERATE, LEAVEITERATE : 지정한 레이블로 가서 계속 진행
LEAVE : 지정한 레이블을 빠져나간다. WHILE 문 종료
DROP PROCEDURE IF EXISTS whileProc2;
DELIMITER $$
CREATE PROCEDURE whileProc2()
BEGIN
DECLARE i INT;
DECLARE sum INT;
SET i = 1;
SET sum = 0;
myWhile: -- WHILE 문을 myWhile 이라는 레이블로 지정
WHILE (i <= 100) DO
IF (i%4 = 0) THEN
SET i = i + 1;
ITERATE myWhile; -- 지정한 lable 문으로 가서 계속 진행
END IF;
SET sum = sum + i;
IF (sum > 1000) THEN
LEAVE myWhile; -- 지정한 레이블 문을 떠남.
END IF;
SET i = i + 1;
END WHILE;
SELECT '1부터 100까지의 합(4배수 제외), 1000 넘으면 종료 ==> ', sum;
END $$
DELIMITER ;
CALL whileProc2();
