Maison  >  Article  >  base de données  >  Que comprend l'instruction de contrôle de flux MySQL ?

Que comprend l'instruction de contrôle de flux MySQL ?

青灯夜游
青灯夜游original
2020-12-02 11:10:555969parcourir

Les instructions de contrôle de flux dans MySQL incluent : l'instruction IF, l'instruction CASE, l'instruction LOOP, l'instruction WHILE, l'instruction REPEAT, l'instruction LEAVE et l'instruction ITERATE, qui peuvent toutes contrôler le flux du programme.

Que comprend l'instruction de contrôle de flux MySQL ?

Les instructions de contrôle de flux peuvent être utilisées dans des procédures stockées et des fonctions personnalisées pour contrôler le flux du programme. Les instructions de contrôle de flux dans MySQL incluent : l'instruction IF, l'instruction CASE, l'instruction LOOP, l'instruction WHILE, l'instruction REPEAT, l'instruction LEAVE et l'instruction ITERATE, qui peuvent effectuer un contrôle de processus. (Tutoriel recommandé : Tutoriel vidéo MySQL)

1 Instruction IF

L'instruction IF est utilisée pour émettre des jugements conditionnels. . Effectuez différentes opérations en fonction de différentes conditions. Lorsque cette instruction est exécutée, elle juge d'abord si la condition après IF est vraie, puis exécute l'instruction après ALORS si elle est fausse, elle continue à juger l'instruction IF jusqu'à ce qu'elle soit vraie. contenu après l’exécution de l’instruction ELSE. L'expression de l'instruction IF est la suivante :

IF condition THEN
	...
ELSE condition THEN
	...
ELSE
	...
END IF

Exemple : Utilisez l'instruction IF pour porter un jugement conditionnel.

-- 创建存储过程
CREATE PROCEDURE example_if (IN x INT)
BEGIN
	IF x = 1 THEN
		SELECT 1;
	ELSEIF x = 2 THEN 
		SELECT 2;
	ELSE
		SELECT 3;
	END IF;
END;

-- 调用存储过程
CALL example_if(2);

Remarque : La fonction IF() dans MySQL est différente de l'instruction IF ici.

2. Instruction CASE

L'instruction CASE est une structure d'instruction multi-branches qui recherche d'abord VALUE après WHEN. et La VALEUR après CASE est égale à la valeur Si elle est trouvée, le contenu de la branche sera exécuté, sinon le contenu après ELSE sera exécuté. L'instruction CASE est exprimée sous la forme suivante :

CASE value
	WHEN value THEN ...
	WHEN value THEN ...
	ELSE ...
END CASE

Une autre expression grammaticale de l'instruction CASE est la suivante :

CASE
	WHEN value THEN ...
	WHEN value THEN ...
	ELSE ...
END CASE

Exemple : Utilisez l'instruction CASE pour rendre conditionnel jugements.

-- 创建存储过程
CREATE PROCEDURE example_case(IN x INT)
BEGIN
	CASE x
		WHEN 1 THEN SELECT 1;
		WHEN 2 THEN SELECT 2;
		ELSE SELECT 3;
	END CASE;
END;

-- 调用存储过程
CALL example_case(5);

3. Instruction de boucle WHILE

Lors de l'exécution de l'instruction de boucle WHILE, déterminez d'abord si la condition est vraie. le corps de la boucle. Sinon, quittez la boucle. La syntaxe est exprimée comme suit :

WHILE condition DO
...
END WHILE;

Exemple : Utilisez l'instruction de boucle WHILE pour trouver la somme des 100 premiers.

-- 创建存储过程
CREATE PROCEDURE example_while(OUT sum INT)
BEGIN
	DECLARE i INT DEFAULT 1;
	DECLARE s INT DEFAULT 0;

	WHILE i <= 100 DO
		SET s = s+i;
		SET i = i+1;
	END WHILE;

	SET sum = s;
END;

-- 调用存储过程
CALL example_while(@sum);
SELECT @sum;

4. Instruction de boucle LOOP

La boucle LOOP n'a pas de conditions de boucle intégrées, mais vous pouvez quitter la boucle via LEAVE. déclaration. L'expression de l'instruction LOOP est la suivante :

LOOP
	...
END LOOP

L'instruction LOOP permet l'exécution répétée d'une instruction ou d'un groupe d'instructions spécifique pour implémenter une structure de boucle simple. Les instructions de la boucle sont répétées jusqu'à ce que la boucle soit quittée. . Lors de la sortie de la boucle, l'instruction LEAVE est utilisée.

L'instruction LEAVE est souvent utilisée avec BEGIN...END ou une boucle, et son expression est la suivante :

LEAVE label

label est le nom marqué dans l'instruction, et ce nom est personnalisé.

Exemple : Utilisez l'instruction de boucle LOOP pour trouver la somme des 100 premiers.

-- 创建存储过程
CREATE PROCEDURE example_loop(OUT sum INT)
BEGIN
	DECLARE i INT DEFAULT 1;
	DECLARE s INT DEFAULT 0;
	
	loop_label:LOOP
		SET s = s+i;
		SET i = i+1;
	
		IF i>100 THEN
			-- 退出LOOP循环
			LEAVE loop_label;  
		END IF;
	END LOOP;

	SET sum = s;
END;

-- 调用存储过程
CALL example_loop(@sum);
SELECT @sum;

5. Instruction de boucle REPEAT

L'instruction de boucle REPEAT exécute d'abord le corps de la boucle une fois, puis détermine si la condition est vraie, puis quitte la boucle, sinon la boucle continue. L'expression de l'instruction REPEAT est la suivante :

REPEAT
	...
	UNTIL condition
END REPEAT

Exemple : Utilisez l'instruction de boucle REPEAT pour trouver la somme des 100 premiers.

-- 创建存储过程
CREATE PROCEDURE example_repeat(OUT sum INT)
BEGIN
	DECLARE i INT DEFAULT 1;
	DECLARE s INT DEFAULT 0;

	REPEAT
		SET s = s+i;
		SET i = i+1;
		
		UNTIL i > 100
	END REPEAT;
	
	SET sum = s;
END;

-- 调用存储过程
CALL example_repeat(@sum);
SELECT @sum;

6. Instruction ITERATE

L'instruction ITERATE peut apparaître dans les instructions LOOP, REPEAT et WHILE, ce qui signifie "boucler à nouveau". Le format de l'instruction est le suivant :

ITERATE label

Le format de cette instruction est similaire à celui de LEAVE. La différence est que : l'instruction LEAVE quitte une boucle, tandis que l'instruction ITERATE redémarre une boucle.

Exemple : Trouver la somme des valeurs impaires à 10 près.

-- 创建存储过程
CREATE PROCEDURE example_iterate(OUT sum INT)
BEGIN
	DECLARE i INT DEFAULT 0;
	DECLARE s INT DEFAULT 0;
	
	loop_label:LOOP

		SET i = i+1;		

		IF i > 10 THEN
			-- 退出整个循环
			LEAVE loop_label;  
		END IF;

		IF (i mod 2) THEN
			SET s = s+i;
		ELSE
			-- 退出本次循环,继续下一个循环
			ITERATE  loop_label;
		END IF;

	END LOOP;

	SET sum = s;
END;

-- 调用存储过程
CALL example_iterate(@sum);
SELECT @sum

Pour plus de connaissances liées à la programmation, veuillez visiter : Site Web d'apprentissage en programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn