Les procédures stockées MySQL sont une méthode d'écriture, de stockage et de réutilisation de code SQL dans MySQL. Les procédures stockées peuvent accepter et traiter les entrées de paramètres, exécuter des instructions SQL pour effectuer des tâches spécifiques et renvoyer des résultats. Dans MySQL, les procédures stockées sont très utiles pour la logique métier complexe et le traitement des données, ce qui peut améliorer l'efficacité et la fiabilité de la base de données. La boucle for est l'une des instructions de flux de contrôle couramment utilisées dans les procédures stockées MySQL. Elle peut être utilisée pour exécuter de manière répétée certains blocs de code.
Le format de syntaxe de base de l'instruction de boucle for est le suivant :
for loop_variable [reverse] in lower_bound..upper_bound loop -- 可执行的代码块 end loop;
Parmi eux, loop_variable est une variable de boucle, qui sera automatiquement mise à jour dans chaque boucle. L'inverse est facultatif, indiquant s'il faut exécuter la boucle dans le sens opposé ; ; lower_bound et upper_bound sont des boucles for Les valeurs de début et de fin de , qui peuvent être des variables, des expressions ou des constantes.
L'utilisation de boucles for dans les procédures stockées peut rendre le code plus concis et efficace. Ce qui suit présentera en détail comment utiliser les boucles for dans les procédures stockées MySQL à travers un exemple.
Supposons qu'il existe une table d'étudiants qui contient des informations telles que la carte d'étudiant, le nom et les résultats. Vous devez maintenant écrire une procédure stockée pour compter le nombre d'étudiants en fonction de leurs scores et stocker les résultats statistiques dans un nouveau tableau. Nous pouvons utiliser une instruction de boucle for pour parcourir les scores de tous les étudiants, puis compter le nombre d'étudiants en fonction de la plage de scores.
Tout d'abord, nous devons créer une nouvelle table score_statistics pour stocker les résultats des statistiques de score :
CREATE TABLE score_statistics ( id INT(11) NOT NULL AUTO_INCREMENT, score_range VARCHAR(50) DEFAULT NULL, count INT(11) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
Ensuite, nous écrivons une procédure stockée calculate_score_count pour parcourir la table des étudiants et compter le nombre de personnes dans la plage de scores :
DELIMITER $$ CREATE PROCEDURE calculate_score_count() BEGIN DECLARE i INT DEFAULT 0; DECLARE score_range VARCHAR(50); DECLARE count INT DEFAULT 0; DECLARE lower_bound INT DEFAULT 0; DECLARE upper_bound INT DEFAULT 0; SET i = 1; WHILE i <= 10 DO SET lower_bound = (i - 1) * 10; SET upper_bound = i * 10; SET score_range = CONCAT(lower_bound, '-', upper_bound); SET count = (SELECT COUNT(*) FROM student WHERE score BETWEEN lower_bound AND upper_bound); INSERT INTO score_statistics (score_range, count) VALUES (score_range, count); SET i = i + 1; END WHILE; END$$ DELIMITER ;
Dans la ci-dessus Dans le code, nous utilisons une instruction de boucle while pour parcourir la plage de scores. Pour chaque plage de scores, nous calculons les limites inférieure et supérieure correspondantes, puis utilisons l'instruction SELECT pour compter le nombre de personnes dans la plage à partir de la table des étudiants. . Enfin, score_range et count sont insérés dans la table score_statistics.
En appelant la procédure stockée, nous pouvons obtenir les résultats suivants :
call calculate_score_count(); select * from score_statistics;
La table score_statistics stocke la plage de scores et les résultats du décompte correspondant. Les données sont les suivantes :
id | score_range | count | .
---|---|---|
1 | 0-10 | 1 |
2 | 10-20 | 2 |
3 | 20-30 | 3 |
4 | 30-40 | 4 |
5 | 40-50 | 2 |
6 | 50-60 | 1 |
7 | 60-70 | 1 |
8 | 70 -80 | 1 |
9 | 80-90 | 0 |
10 | 90-100 | 1 |
À travers les exemples ci-dessus, nous pouvons voir qu'en utilisant l'instruction de boucle for peut simplifier l'écriture des procédures stockées MySQL et améliorer efficacement l'efficacité du programme. Dans le processus de développement actuel, nous pouvons écrire des procédures stockées plus efficaces et plus flexibles en fonction des besoins spécifiques de l'entreprise.
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!