Maison  >  Article  >  base de données  >  Qu'est-ce qu'une procédure stockée dans MySQL

Qu'est-ce qu'une procédure stockée dans MySQL

青灯夜游
青灯夜游original
2021-06-11 14:13:546139parcourir

Dans MySQL, une procédure stockée est un ensemble d'instructions SQL conçues pour accomplir des fonctions spécifiques. 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.

Qu'est-ce qu'une procédure stockée dans MySQL

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

Stored Procedure est un objet de base de données qui stocke des programmes complexes dans la base de données afin qu'ils puissent être appelés par des programmes externes.

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. 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.

MySQL version 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 dans la base de données. Les procédures stockées peuvent être utilisées pour. convertir des données, il est similaire à un langage de programmation pour la migration des données et la création de rapports. 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#.

Créer une procédure stockée

Vous pouvez utiliser l'instruction CREATE PROCEDURE pour créer une procédure stockée. Le format de syntaxe de est le suivant. suit :

CREATE PROCEDURE <过程名> ( [过程参数[,…] ] ) <过程体>

[Paramètres de la procédure[,…]] Format

[ IN | OUT | INOUT ] <参数名> <类型>

La description de la syntaxe est la suivante :

1) Nom de la procédure

Le nom de la procédure stockée, créée par défaut dans la base de données courante. Si vous devez créer une procédure stockée dans une base de données spécifique, ajoutez au début le nom de la base de données, db_name.sp_name.

Il convient de noter que le nom doit essayer d'éviter de choisir le même nom que la fonction intégrée MySQL, sinon une erreur se produira.

2) Paramètres du processus

stocke la liste des paramètres de la procédure. Parmi eux, 4a82531f3fde107146fdd03610e22e4b est le nom du paramètre et 30690cee1a11d5dfbdced93b89f678ee est le type du paramètre (peut être n'importe quel type de données MySQL valide). Lorsqu'il existe plusieurs paramètres, séparez-les par des virgules dans la liste des paramètres. Une procédure stockée peut ne pas avoir de paramètres (dans ce cas, il faut quand même ajouter une paire de parenthèses après le nom de la procédure stockée), ou bien elle peut avoir un ou plusieurs paramètres.

Les procédures stockées MySQL prennent en charge trois types de paramètres, à savoir les paramètres d'entrée, les paramètres de sortie et les paramètres d'entrée/sortie, qui sont identifiés respectivement par les trois mots-clés IN, OUT et INOUT. Parmi eux, les paramètres d'entrée peuvent être transmis à une procédure stockée, les paramètres de sortie sont utilisés lorsque la procédure stockée doit renvoyer un résultat d'opération, et les paramètres d'entrée/sortie peuvent servir à la fois de paramètres d'entrée et de paramètres de sortie.

Il convient de noter que le nom du paramètre ne doit pas être le même que le nom de la colonne de la table de données. Sinon, bien qu'aucun message d'erreur ne soit renvoyé, l'instruction SQL de la procédure stockée prendra en compte le nom du paramètre. comme nom de colonne, provoquant une erreur.

3) Corps de la procédure

La partie principale de la procédure stockée, également appelée corps de la procédure stockée, contient les instructions SQL qui doivent être exécutées lorsque la procédure est appelée. Cette section commence par le mot-clé BEGIN et se termine par le mot-clé END. S'il n'y a qu'une seule instruction SQL dans le corps de la procédure stockée, l'indicateur BEGIN-END peut être omis.

Exemple :

Créez une procédure stockée nommée ShowStuScore. La fonction de la procédure stockée est d'interroger les informations sur les notes des étudiants à partir du tableau d'informations sur les notes des étudiants. Entrez l'instruction SQL. et Le processus d'exécution est le suivant.

mysql> DELIMITER //
mysql> CREATE PROCEDURE ShowStuScore()
    -> BEGIN
    -> SELECT * FROM tb_students_score;
    -> END //
Query OK, 0 rows affected (0.09 sec)

Le résultat montre que la procédure stockée ShowStuScore a été créée avec succès.

Supprimer la procédure stockée

Une fois qu'une procédure stockée est créée, elle sera enregistrée sur le serveur de base de données jusqu'à ce qu'elle soit supprimée. Lorsqu'il existe une procédure stockée obsolète dans la base de données MySQL, nous devons la supprimer de la base de données.

L'instruction DROP PROCEDURE est utilisée dans MySQL pour supprimer les procédures stockées qui existent déjà dans la base de données. Le format de la syntaxe est le suivant :

DROP PROCEDURE [ IF EXISTS ] <过程名>

La description de la syntaxe est la suivante :

  • Nom du processus : Spécifiez le nom de la procédure stockée à supprimer.

  • IF EXISTS:指定这个关键字,用于防止因删除不存在的存储过程而引发的错误。

注意:存储过程名称后面没有参数列表,也没有括号,在删除之前,必须确认该存储过程没有任何依赖关系,否则会导致其他与之关联的存储过程无法运行。

实例

下面删除存储过程 ShowStuScore,SQL 语句和运行结果如下:

mysql> DROP PROCEDURE ShowStuScore;
Query OK, 0 rows affected (0.08 sec)

删除后,可以通过查询 information_schema 数据库下的 routines 表来确认上面的删除是否成功。SQL 语句和运行结果如下:

mysql> SELECT * FROM information_schema.routines WHERE routine_name=&#39;ShowStuScore&#39;;
Empty set (0.03 sec)

结果显示,没有查询出任何记录,说明存储过程 ShowStuScore 已经被删除了。

(推荐教程: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