Maison > base de données > tutoriel mysql > le corps du texte

procédure stockée mysql pour la boucle

WBOY
Libérer: 2023-05-12 10:08:06
original
3051 Les gens l'ont consulté

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

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

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

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

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!

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