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

tableau de procédures stockées MySQL

王林
Libérer: 2023-05-23 10:29:37
original
2284 Les gens l'ont consulté

La procédure stockée de MySQL est un ensemble d'instructions SQL stockées dans la base de données qui peuvent être appelées et exécutées à plusieurs reprises. La syntaxe de définition des procédures stockées dans MySQL est fondamentalement la même que celle des fonctions, mais les procédures stockées peuvent contenir davantage d'instructions SQL et d'instructions de contrôle, ce qui permet d'effectuer des opérations plus complexes. Dans les procédures stockées MySQL, les tableaux sont largement utilisés pour le stockage, la lecture, la modification et la suppression de données. Cet article abordera les tableaux dans les procédures stockées MySQL, y compris la définition des tableaux, les opérations sur les tableaux et les cas d'utilisation des tableaux.

1. Définition du tableau

Un tableau est une structure de données ordonnée composée d'éléments de données connectés en série du même type de données. Dans les procédures stockées MySQL, les tableaux peuvent être implémentés par des variables ou des tables. Les tableaux implémentés par des variables peuvent définir des tableaux unidimensionnels ou multidimensionnels ; les tableaux implémentés par des tables peuvent définir des tableaux de tables. Les méthodes de définition de ces trois tableaux sont présentées ci-dessous.

  1. Tableau unidimensionnel

Dans les procédures stockées MySQL, les tableaux unidimensionnels peuvent être implémentés par des variables. La méthode de définition d'un tableau unidimensionnel est similaire à la définition d'une variable. Il vous suffit d'ajouter des crochets [] après le nom de la variable et de spécifier la longueur du tableau entre parenthèses. Par exemple, définissez un tableau entier unidimensionnel :

DECLARE arr1 INT[5];

où arr1 est le nom du tableau, INT est le type de données et 5 est la longueur du tableau. Vous pouvez utiliser une instruction de boucle pour parcourir le tableau, par exemple :

DECLARE i INT;
SET i = 1;
WHILE i <= 5 DO#🎜🎜 #

SET arr1[i] = i;
SET i = i+1;
Copier après la connexion
#🎜🎜 #END WHILE;

Le code ci-dessus attribue 1 à 5 à chaque élément du tableau.

Tableau multidimensionnel
  1. Dans les procédures stockées MySQL, les tableaux multidimensionnels peuvent être implémentés par des définitions imbriquées de tableaux unidimensionnels. Par exemple, définissez un tableau d'entiers bidimensionnels :

DECLARE arr2 INT3;

où arr2 est le nom du tableau, INT est le type de données, 3 et 4 sont à deux dimensions longueur. Vous pouvez utiliser une instruction à double boucle pour parcourir le tableau, par exemple :

DECLARE i INT

DECLARE j INT; i <= 3 DO

SET j = 1;
WHILE j <= 4 DO
    SET arr2[i][j] = i*j;
    SET j = j+1;
END WHILE;
SET i = i+1;
Copier après la connexion

END WHILE;

Le code ci-dessus affecte chaque élément du tableau au produit du nombre de lignes et de colonnes dans lesquelles il se trouve .

Tableau de tables

    Dans les procédures stockées MySQL, un tableau de tables est un tableau composé de plusieurs tables, chaque table a la même structure. Par exemple, définissez un tableau de tables contenant 3 tables :
  1. DECLARE tab TABLE(
id INT,
name VARCHAR(20),
age INT
Copier après la connexion

);

DECLARE arr3 tab[3];

# 🎜🎜# Parmi eux, tab est la structure de la table, id, name et age sont les noms de colonnes de la table ; arr3 est le nom du tableau et 3 est la longueur du tableau. Vous pouvez utiliser une instruction de boucle pour parcourir chaque table du tableau, par exemple :

DECLARE i INT;
SET i = 1;

WHILE i <= 3 DO #🎜🎜 #
SET @sql = CONCAT('INSERT INTO arr3[', i, '] VALUES(1, "Tom", 20)');
PREPARE stmt FROM @sql;
EXECUTE stmt;
SET i = i+1;
Copier après la connexion

END WHILE;

DEALLOCATE PREPARE stmt;


Le code ci-dessus insère une donnée dans chaque table du tableau nommé arr3.

2. Opérations sur les tableaux


Les opérations sur les tableaux dans les procédures stockées MySQL incluent principalement l'accès, la modification et la suppression du tableau. Les méthodes de ces opérations sont présentées ci-dessous.

Accès au tableau

L'accès aux éléments du tableau peut être obtenu via des indices, qui commencent à partir de 0. Par exemple, pour accéder au troisième élément du tableau unidimensionnel arr1 :

    SELECT arr1[2];
  1. Pour accéder à l'élément de la deuxième ligne et de la troisième colonne de le tableau bidimensionnel arr2 :

SELECT arr22;

Accéder à toutes les données de la deuxième table du tableau tableau arr3 :

SELECT * FROM arr3 [2];#🎜 🎜#

Modification du tableau

La modification des éléments du tableau peut être réalisée via des opérations d'affectation. Par exemple, modifiez le 4ème élément du tableau unidimensionnel arr1 :

SET arr1[3] = 10;
  1. Modifiez la 2ème ligne et la 3ème colonne des deux- tableau dimensionnel arr2 Élément :
SET arr22 = 5;

Modifier la colonne âge de l'enregistrement avec l'identifiant 1 dans la troisième table du tableau tableau arr3 :

# 🎜🎜# UPDATE arr3[3] SET age = 25 WHERE id = 1;

Suppression du tableau

La suppression d'éléments du tableau peut être effectuée en attribuer l'élément à NULL ou utiliser l'instruction DELETE. Par exemple, supprimez le deuxième élément du tableau unidimensionnel arr1 :

SET arr1[1] = NULL;

    Supprimez la deuxième ligne et la deuxième colonne du tableau bidimensionnel array arr2 Suppression d'un élément :
  1. SET arr22 = NULL;

Supprimer l'enregistrement avec l'identifiant 1 dans la deuxième table du tableau array arr3 :

DELETE FROM arr3[2] WHERE id = 1;

3 Les cas d'utilisation des tableaux

Les tableaux sont largement utilisés dans les procédures stockées MySQL. Deux cas d'utilisation de tableaux sont présentés ci-dessous, à savoir le tri de tableaux et la conversion de tableaux en chaîne.

Tri des tableaux

Le tri des tableaux unidimensionnels peut être réalisé via des instructions de boucle et des instructions conditionnelles. Par exemple, triez par bulles le tableau unidimensionnel arr1 :

DECLARE i INT;

DECLARE j INT;
    DECLARE temp INT;
  1. SET i = 1;# 🎜🎜#WHILE i <= 4 DO
  2. SET j = i+1;
    WHILE j <= 5 DO
        IF arr1[i] > arr1[j] THEN
            SET temp = arr1[i];
            SET arr1[i] = arr1[j];
            SET arr1[j] = temp;
        END IF;
        SET j = j+1;
    END WHILE;
    SET i = i+1;
    Copier après la connexion
END WHILE;

Le résultat de sortie du tableau trié est :


SELECT * FROM arr1 ;


Convertir un tableau en chaîne

La conversion d'un tableau en chaîne peut être réalisée via des instructions de boucle et des fonctions de chaîne. Par exemple, convertissez le tableau unidimensionnel arr1 en une chaîne séparée par des virgules :

DECLARE i INT;

DECLARE str VARCHAR(100);

SET i = 1;# 🎜 🎜#SET str = '';
    WHILE i <= 5 DO
  1. IF i = 1 THEN
        SET str = CONCAT(str, arr1[i]);
    ELSE
        SET str = CONCAT(str, ',', arr1[i]);
    END IF;
    SET i = i+1;
    Copier après la connexion
    END WHILE;SELECT str;

    Caractères convertis Le Le résultat de la sortie de chaîne est :


    1,2,3,4,5

    4. Résumé

    Cet article présente les tableaux dans les procédures stockées MySQL, y compris la définition des tableaux, les opérations sur les tableaux et les cas d'utilisation des tableaux. En tant que méthode de stockage de données ordonnée et efficace, les baies ont une valeur d'application importante dans le processus de stockage. En lisant cet article, je pense que les lecteurs maîtrisent la méthode d'application des tableaux dans les procédures stockées MySQL et peuvent appliquer de manière flexible des tableaux dans le développement réel pour effectuer des opérations plus complexes.

    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