Maison > Article > base de données > Les curseurs peuvent-ils être utilisés dans les fonctions MySQL ?
Les curseurs peuvent être utilisés dans les fonctions MySQL. Dans MySQL, les curseurs ne peuvent être utilisés que pour les procédures et fonctions stockées ; les requêtes dans les procédures ou fonctions stockées renvoient parfois plusieurs enregistrements, et en utilisant une simple instruction SELECT, il n'y a aucun moyen d'obtenir la première ligne, la ligne suivante ou les dix premières lignes de data , vous pouvez alors utiliser un curseur pour lire les enregistrements dans le jeu de résultats de la requête un par un. Les curseurs peuvent être utilisés pour effectuer des opérations vers l'avant ou vers l'arrière sur les données récupérées. Ils sont principalement utilisés dans les applications interactives, telles que les utilisateurs faisant défiler des données sur l'écran.
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Les curseurs peuvent être utilisés dans les fonctions MySQL.
Curseur : Également appelé curseur, il s'agit d'une requête de base de données stockée sur le serveur du SGBD. Il ne s'agit pas d'une instruction de sélection, mais de l'ensemble de résultats récupéré par l'instruction.
Utilisation du curseur : opération avant ou arrière des données récupérées, principalement utilisée pour les applications interactives, telles que les utilisateurs faisant défiler les données sur l'écran
Caractéristiques du curseur :
Peut marquer le curseur en lecture seule pour rendre les données Peut lire, mais ne peut pas mettre à jour et supprimer
Peut contrôler les opérations directionnelles qui peuvent être effectuées (avant, arrière, premier, dernier, position absolue, position relative, etc.)
Peut marquer certaines colonnes comme disponibles Modifiable , certaines colonnes ne sont pas modifiables
Spécifiez la portée pour rendre le curseur accessible à la requête spécifique qui l'a créé (comme une procédure stockée) ou à toutes les requêtes
Uniquement le SGBD aux données récupérées (pas Point les données actives dans le tableau) à copier afin que les données ne changent pas pendant la période d'ouverture et d'accès du curseur
Dans MySQL, les curseurs ne peuvent être utilisés que pour les procédures et fonctions stockées.
Dans MySQL, les requêtes dans les procédures stockées ou les fonctions renvoient parfois plusieurs enregistrements, et en utilisant une simple instruction SELECT, il n'y a aucun moyen d'obtenir la première ligne, la ligne suivante ou les dix premières lignes de données. Dans ce cas, vous pouvez. utilisez un curseur pour lire les enregistrements dans le jeu de résultats de la requête un par un. Les curseurs sont également appelés curseurs dans certains matériaux.
Le système de gestion de base de données relationnelle est essentiellement orienté ensemble. Dans MySQL, il n'existe pas de forme d'expression pour décrire un seul enregistrement dans la table, à moins qu'une clause WHERE ne soit utilisée pour limiter la sélection d'un seul enregistrement. Nous devons donc parfois utiliser des curseurs pour traiter les données d'un seul enregistrement.
1. Déclarez le curseur
Utilisez le mot-clé DECLARE dans MySQL pour déclarer le curseur, définissez l'instruction SELECT correspondante et ajoutez WHERE et d'autres clauses si nécessaire. La forme de base de sa syntaxe est la suivante :
DECLARE cursor_name CURSOR FOR select_statement;
Parmi eux, curseur_name représente le nom du curseur ; select_statement représente l'instruction SELECT, qui peut renvoyer une ou plusieurs lignes de données.
Exemple 1
Ce qui suit déclare un curseur nommé nameCursor. Le code est le suivant :
mysql> DELIMITER // mysql> CREATE PROCEDURE processnames() -> BEGIN -> DECLARE nameCursor CURSOR -> FOR -> SELECT name FROM tb_student; -> END// Query OK, 0 rows affected (0.07 sec)
L'instruction ci-dessus définit le curseur nameCursor. Le curseur est uniquement limité à la procédure stockée. disparaît.
2. Ouvrez le curseur
Après avoir déclaré le curseur, si vous souhaitez extraire des données du curseur, vous devez d'abord ouvrir le curseur. Dans MySQL, l'ouverture d'un curseur se fait via le mot clé OPEN, et sa syntaxe est la suivante :
OPEN cursor_name;
où curseur_name représente le nom du curseur à ouvrir. Il est à noter que lorsqu'un curseur est ouvert, le curseur ne pointe pas vers le premier enregistrement, mais vers le début du premier enregistrement.
Dans le programme, un curseur peut être ouvert plusieurs fois. Une fois que l'utilisateur a ouvert le curseur, d'autres utilisateurs ou programmes peuvent mettre à jour le tableau de données. Ainsi, les résultats affichés sont parfois différents à chaque fois que l'utilisateur ouvre le curseur.
3. Utilisation d'un curseur
Une fois le curseur ouvert avec succès, vous pouvez utiliser l'instruction FETCH...INTO pour lire les données :
FETCH cursor_name INTO var_name [,var_name]...
Dans l'instruction ci-dessus, enregistrez le résultat de l'exécution. de l'instruction SELECT dans le curseur nom_curseur dans le paramètre variable nom_var. Le paramètre variable var_name doit être défini avant que le curseur puisse être utilisé. L'utilisation d'un curseur est similaire au parcours de tableau dans les langages de haut niveau. Lorsque le curseur est utilisé pour la première fois, il pointe vers le premier enregistrement de l'ensemble de résultats.
Le curseur de MySQL est en lecture seule, c'est-à-dire que vous ne pouvez lire le jeu de résultats que de manière séquentielle du début vers l'arrière, pas de l'arrière vers l'avant, et vous ne pouvez pas non plus passer directement à l'enregistrement du milieu.
4. Fermez le curseur
Une fois le curseur utilisé, il doit être fermé à temps. Dans MySQL, utilisez le mot-clé CLOSE pour fermer le curseur. Le format de syntaxe est le suivant :
CLOSE cursor_name;
CLOSE libère tous les éléments internes. mémoire et ressources utilisées par le curseur, chaque curseur doit donc être fermé lorsqu'il n'est plus nécessaire.
Une fois un curseur fermé, il ne peut pas être utilisé sans le rouvrir. Cependant, il n'est pas nécessaire de le déclarer à nouveau pour utiliser un curseur déclaré, il suffit de l'ouvrir avec l'instruction OPEN.
Si vous ne fermez pas explicitement le curseur, MySQL le fermera automatiquement lorsque l'instruction END sera atteinte. Une fois le curseur fermé, il ne peut plus être utilisé avec FETCH.
【Recommandation associée : tutoriel vidéo mysql】
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!