Maison  >  Article  >  base de données  >  MySQL a-t-il des procédures stockées ?

MySQL a-t-il des procédures stockées ?

青灯夜游
青灯夜游original
2022-06-15 18:37:113705parcourir

mysql a des procédures stockées. Les procédures stockées sont un ensemble d'instructions SQL conçues pour exécuter des fonctions spécifiques. MySQL version 5.0 ne prenait pas en charge les procédures stockées auparavant, mais il prend en charge les procédures stockées à partir de la version 5.0. Cela améliore non seulement la vitesse de traitement de la base de données, mais améliore également la flexibilité. de la programmation de bases de données. Les procédures stockées peuvent être utilisées pour convertir des données, migrer des données et créer des rapports. Une fois exécutées avec succès, elles peuvent être appelées à tout moment pour effectuer des opérations fonctionnelles spécifiées.

MySQL a-t-il des procédures stockées ?

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

mysql a des procédures stockées.

Une procédure stockée est un ensemble d'instructions SQL conçues pour accomplir une fonction spécifique. Le but de l'utilisation de procédures stockées est de pré-écrire un travail courant ou complexe avec des instructions SQL et de les stocker sous un nom spécifié. Cette procédure est compilée, optimisée et stockée dans le serveur de base de données, elle est donc appelée procédure stockée. Lorsque vous aurez besoin que la base de données fournisse le même service que la procédure stockée définie à l'avenir, il vous suffit d'appeler "CALL nom de la procédure stockée" pour la compléter automatiquement.

Les instructions SQL couramment utilisées pour faire fonctionner les bases de données doivent d'abord être compilées, puis exécutées une fois exécutées. Les procédures stockées adoptent une autre approche pour exécuter les instructions SQL.

Une procédure stockée est une fonction programmable qui est créée et enregistrée dans la base de données. Elle se compose généralement d'instructions SQL et de certaines structures de contrôle spéciales. Les procédures stockées sont particulièrement adaptées lorsque vous souhaitez exécuter la même fonction spécifique sur différentes applications ou plateformes.

La version MySQL 5.0 ne prenait pas en charge les procédures stockées auparavant, ce qui réduisait considérablement l'application de MySQL. MySQL prend en charge les procédures stockées depuis la version 5.0, ce qui améliore non seulement la vitesse de traitement de la base de données, mais améliore également la flexibilité de la programmation de la base de données. Les procédures stockées sont une fonction importante de la base de données. Les procédures stockées peuvent être utilisées pour convertir des données et migrer des données. , La création de rapports est similaire à un langage de programmation. Une fois exécuté avec succès, il peut être appelé à tout moment pour effectuer des opérations fonctionnelles spécifiées.

L'utilisation de procédures stockées peut non seulement améliorer l'efficacité de l'accès aux bases de données, mais également améliorer la sécurité de l'utilisation des bases de données.

Pour l'appelant, la procédure stockée encapsule l'instruction SQL et l'appelant n'a pas besoin de prendre en compte le processus d'implémentation spécifique de la fonction logique. Juste un simple appel, il peut être appelé à partir de langages de programmation tels que Java et C#.

L'écriture de procédures stockées a des exigences légèrement plus élevées pour les développeurs, mais cela n'affecte pas l'utilisation courante des procédures stockées, car les procédures stockées présentent les avantages suivants :

1) Encapsulation

Habituellement, il faut plus d'une procédure logique fonction pour compléter les instructions SQL, et les paramètres sont susceptibles d'être transmis entre chaque instruction, donc l'écriture de fonctions logiques est relativement compliquée, et les procédures stockées peuvent inclure ces instructions SQL dans une unité indépendante afin que le monde extérieur ne puisse pas voir l'instruction SQL complexe, seul un simple appel peut atteindre cet objectif. Et les professionnels des bases de données peuvent modifier la procédure stockée à tout moment sans affecter le code source de l'application qui l'appelle.

2) Il peut améliorer la fonction et la flexibilité des instructions SQL

Les procédures stockées peuvent être écrites avec des instructions de contrôle de flux, qui ont une grande flexibilité et peuvent compléter des jugements complexes et des opérations plus complexes.

3) Peut réduire le trafic réseau

Étant donné que la procédure stockée est exécutée côté serveur et a une vitesse d'exécution rapide, lorsque la procédure stockée est appelée sur l'ordinateur client, seule l'instruction d'appel est transmise dans le réseau, ce qui peut réduire la charge du réseau.

4) Hautes performances

Lorsque la procédure stockée est compilée avec succès, elle est stockée dans le serveur de base de données, le client peut l'appeler directement à l'avenir, afin que toutes les instructions SQL soient exécutées à partir du serveur, améliorant ainsi. performance. Cependant, il convient de noter que plus il y a de procédures stockées, mieux c'est. Une utilisation excessive de procédures stockées affectera en réalité les performances du système.

5) Améliorer la sécurité de la base de données et l'intégrité des données

Une façon d'améliorer la sécurité des procédures stockées consiste à les utiliser comme composants intermédiaires. Dans les procédures stockées, vous pouvez effectuer des opérations associées sur certaines tables, puis sur les procédures stockées. servir d'interfaces fournies avec des programmes externes. De cette façon, les programmes externes ne peuvent pas exploiter directement la table de la base de données et ne peuvent exploiter la table correspondante que via des procédures stockées. Par conséquent, la sécurité peut être améliorée dans une certaine mesure.

6) Rendre les données indépendantes

L'indépendance des données peut obtenir l'effet de découplage, c'est-à-dire que le programme peut appeler des procédures stockées au lieu d'exécuter plusieurs instructions SQL. Dans ce cas, la procédure stockée isole les données de l'utilisateur. L'avantage est que lorsque la structure de la table de données change, il n'est pas nécessaire de modifier le programme lors de l'appel de la table. L'administrateur de la base de données n'a qu'à réécrire la procédure stockée. .

Exemple de procédure stockée MySQL

Nous vous montrerons étape par étape comment utiliser CREATE PROCEDURE pour développer votre première procédure stockée MySQL. De plus, nous vous montrerons comment appeler des procédures stockées à partir d'instructions SQL.

Écriture de la première procédure stockée MySQL

Nous développerons une procédure stockée simple pour GetAllProducts() pour vous aider à vous familiariser avec la syntaxe. La procédure stockée GetAllProducts() sélectionne tous les produits de la table des produits.

Lancez l'outil client mysql et tapez la commande suivante :

 DELIMITER //
 CREATE PROCEDURE GetAllProducts()
   BEGIN
   SELECT productCode, productName FROM products;
   END //
 DELIMITER ;

Exécutez la commande :

mysql> DELIMITER //
mysql> CREATE PROCEDURE GetAllProducts()
-> BEGIN
-> SELECT productCode, productName FROM products;
-> END //
Query OK, 0 rows affected (0.02 sec)
mysql> DELIMITER ;

Examinons la procédure stockée plus en détail :

  • La première commande est DELIMITER // et n'a rien à voir avec la procédure stockée syntaxe de la procédure. L'instruction DELIMITER modifie le délimiteur standard (point-virgule (;) en un autre point-virgule). Dans ce cas, le délimiteur passe d'un point-virgule (;) à une double barre oblique //. Pourquoi devons-nous changer le délimiteur ? Parce que nous voulons transmettre la procédure stockée au serveur dans son ensemble au lieu de laisser l'outil MySQL interpréter chaque instruction en même temps. Après le mot clé END, nous utilisons le délimiteur // pour indiquer la fin de la procédure stockée. La dernière commande (DELIMITER; ) modifie le délimiteur en point-virgule (;).

  • Nous utilisons l'instruction CREATE PROCEDURE pour créer une nouvelle procédure stockée. Nous spécifions le nom de la procédure stockée après l'instruction CREATE PROCEDURE. Dans ce cas, le nom de la procédure stockée est GetAllProducts. Nous mettons des parenthèses après le nom de la procédure stockée. La partie entre

  • BEGIN et END est appelée le corps de la procédure stockée. Vous placez des instructions SQL déclaratives dans le corps pour gérer la logique métier. Dans cette procédure stockée, nous utilisons une simple instruction SELECT pour interroger les données de la table products.

Afficher les procédures stockées

Nous pouvons utiliser la commande suivante pour vérifier quelles procédures stockées se trouvent dans la base de données spécifiée :

 select name from mysql.proc where db='mysqldemo';

Résultats d'exécution :

MySQL a-t-il des procédures stockées ?

Appeler les procédures stockées

Pour appeler les procédures stockées , veuillez utiliser la commande SQL suivante :

CALL stored_procedure_name();

Vous utilisez l'instruction CALL pour appeler la procédure stockée. Par exemple, pour appeler la procédure stockée GetAllProducts(), utilisez l'instruction suivante :

CALL GetAllProducts();

Si vous exécutez l'instruction ci-dessus, vous obtiendra tous les produits de la table des produits.

MySQL a-t-il des procédures stockées ?

【Recommandations associées : 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!

Déclaration:
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