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

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

青灯夜游
Libérer: 2020-12-22 17:19:15
original
6009 Les gens l'ont consulté

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
Copier après la connexion

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);
Copier après la connexion

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
Copier après la connexion

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

CASE
	WHEN value THEN ...
	WHEN value THEN ...
	ELSE ...
END CASE
Copier après la connexion

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);
Copier après la connexion

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;
Copier après la connexion

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;
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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;
Copier après la connexion

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
Copier après la connexion

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;
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal