Maison >base de données >tutoriel mysql >Cours MySQL 6 : Contrôle des processus
Recommandations d'apprentissage gratuites : tutoriel vidéo mysql
Répertoire d'articles
Le contrôle de flux dans MySQL est similaire à celui d'autres langages de programmation et est également divisé en trois types : 顺序结构
, 分支结构
, 循环结构
. Fondamentalement, les structures séquentielles utilisées dans les articles précédents (à l'exception de la fonction IF) sont principalement présentées ci-dessous. Les structures de branchement et les structures de boucle sont principalement présentées ci-dessous.
Structure des branches
Fonction IF
Syntaxe : IF(表达式1,表达式2,表达式3)
Description : Si l'expression 1 est vraie, Ensuite, exécutez l'expression 2, sinon exécutez l'expression 3
la structure de cas a deux syntaxes :
Caractéristiques :
BEGIN-END
ou à l'extérieur de BEGIN-END
. BEGIN-END
. 【演示case作为独立的语句】# 创建存储过程,根据传入的成绩,显示等级:90-100显示A 、 80-90显示B、60-80显示C、否则显示DCREATE PROCEDURE test_case(IN score INT)BEGIN CASE WHEN score>=90 AND score=80 THEN SELECT 'B'; WHEN score>=60 THEN SELECT 'C'; ELSE SELECT 'D'; END CASE;END $CALL test_case(95)$
Structure IF
Syntaxe : if 条件1 then 语句1;
elseif 条件2 then 语句2;
...
[else 语句n;]
end if;
【演示IF结构】# 根据传入的成绩,显示等级:90-100显示A 、 80-90显示B、60-80显示C、否则显示DCREATE FUNCTION test_if(score INT) RETURNS CHARBEGIN IF score>=90 AND score=80 THEN RETURN 'B'; ELSEIF score>=60 THEN RETURN 'C'; ELSE RETURN 'D'; END IF;END $SELECT test_if(61)$
Il existe trois types de structures de boucle dans MySQL :
Nom | Syntaxe | Fonctionnalités | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Jugez d'abord, puis exécutez | |||||||||||||
iterate répétezleave , similaire à l'instruction do-wile en Java |
Exécuter en premier Post-jugement | |||||||||||||
boucle | Boucle infinie inconditionnelle |
Les mots-clés qui peuvent être utilisés dans le contrôle de boucle sont
(similaire à continuer en Java) et (similaire à casser en Java)
【演示简单的循环结构】# 案例:批量插入,根据次数插入到admin表中多条记录.CREATE PROCEDURE pro_while1(IN insertCount INT)BEGIN DECLARE i INT DEFAULT 1; WHILE i20则停止TRUNCATE TABLE admin$DROP PROCEDURE test_while1$CREATE PROCEDURE test_while1(IN insertCount INT)BEGIN DECLARE i INT DEFAULT 1; a:WHILE i=20 THEN LEAVE a; END IF; SET i=i+1; END WHILE a;END $CALL test_while1(100)$--------------------------------------------------------------------------------------------【演示添加了iterate的语句】# 案例:批量插入,根据次数插入到admin表中,直插入偶数次CREATE PROCEDURE test_while2(IN insertCount INT)BEGIN DECLARE i INT DEFAULT 0; a:WHILE i<blockquote>Contrôle de processus mysql appris, essayez de terminer les exercices suivants <p><strong></strong><a href="https://www.php.cn/course/list/51.html" target="_blank"><pre class="brush:php;toolbar:false">【习题答案】DROP TABLE IF EXISTS stringcontent;CREATE TABLE stringcontent( id INT PRIMARY KEY AUTO_INCREMENT, content VARCHAR(20) );DELIMITER $CREATE PROCEDURE test_pro1(IN insertCount INT)BEGIN DECLARE i INT DEFAULT 1;#定义一个循环变量i,表示插入次数 DECLARE str VARCHAR(26) DEFAULT 'abcdefghijklmnopqrstuvwxyz'; DECLARE strIndex INT DEFAULT 1;#代表起始索引 DECLARE len INT DEFAULT 1;#代表截取的字符的长度 WHILE i<strong></strong>Plus de recommandations d'apprentissage gratuites associées : tutoriel mysql (Vidéo)
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!