Maison > base de données > tutoriel mysql > Qu'est-ce que la procédure stockée MySQL

Qu'est-ce que la procédure stockée MySQL

coldplay.xixi
Libérer: 2020-10-12 11:18:10
original
2181 Les gens l'ont consulté

Procédure stockée mysql : Tout d'abord, l'instruction SQL du langage de base de données doit être compilée avant l'exécution, puis exécutée, et la procédure stockée est un ensemble d'instructions SQL pour compléter une fonction spécifique, qui est compilée et stockée dans le base de données , l'utilisateur appelle et exécute la procédure stockée en spécifiant son nom et en donnant des paramètres.

Qu'est-ce que la procédure stockée MySQL

Plus de recommandations d'apprentissage gratuites connexes : tutoriel mysql (Vidéo)

Introduction aux procédures stockées

Notre langage de base de données d'exploitation couramment utilisé Les instructions SQL doivent d'abord être compilées, puis exécutées une fois exécutées, et une procédure stockée (Stored Procedure) est un ensemble d'instructions SQL pour remplir une fonction spécifique. Elle est compilée et stockée dans la base de données. L'utilisateur l'appelle en spécifiant le nom de la procédure stockée et en donnant des paramètres (si la procédure stockée l'a). paramètres). Exécutez-le.

Une procédure stockée est une fonction programmable qui est créée et enregistrée dans la base de données. Il peut s'agir d'instructions SQL et de certaines structures de contrôle spéciales. Les procédures stockées sont utiles lorsque vous souhaitez exécuter la même fonction sur différentes applications ou plates-formes, ou lorsque vous souhaitez encapsuler des fonctionnalités spécifiques. Les procédures stockées dans une base de données peuvent être considérées comme une simulation de l’approche orientée objet en programmation. Il permet de contrôler la manière dont les données sont accessibles.

Les procédures stockées présentent généralement les avantages suivants :

Les procédures stockées améliorent la fonctionnalité et la flexibilité du langage SQL. Les procédures stockées peuvent être écrites à l'aide d'instructions de contrôle de flux, sont très flexibles et peuvent effectuer des jugements complexes et des opérations plus complexes.

Les procédures stockées permettent de programmer des composants standards. Une fois qu'une procédure stockée est créée, elle peut être appelée plusieurs fois dans le programme sans avoir à réécrire l'instruction SQL de la procédure stockée. Et les professionnels des bases de données peuvent modifier les procédures stockées à tout moment sans affecter le code source de l'application.

Les procédures stockées peuvent atteindre une vitesse d'exécution plus rapide. Si une opération contient une grande quantité de code Transaction-SQL ou est exécutée plusieurs fois, la procédure stockée s'exécutera beaucoup plus rapidement que le traitement par lots. Parce que les procédures stockées sont précompilées. Lorsqu'une procédure stockée est exécutée pour la première fois, la requête est analysée et optimisée par l'optimiseur et un plan d'exécution est finalement stocké dans la table système. L'instruction batch Transaction-SQL doit être compilée et optimisée à chaque exécution, et la vitesse est relativement plus lente.

Les procédures stockées peuvent réduire le trafic réseau. Pour les opérations sur le même objet de base de données (telles qu'une requête, une modification), si l'instruction Transaction-SQL impliquée dans cette opération est organisée en procédure stockée, alors lorsque la procédure stockée est appelée sur l'ordinateur client, seul l'appel est transmis via les instructions du réseau, augmentant ainsi considérablement le trafic réseau et réduisant la charge du réseau.

Les procédures stockées peuvent être pleinement utilisées comme mécanisme de sécurité. En restreignant les autorisations d'exécution d'une certaine procédure stockée, l'administrateur système peut limiter les autorisations d'accès aux données correspondantes, empêcher les utilisateurs non autorisés d'accéder aux données et assurer la sécurité des données.

À propos des procédures stockées de MySQL

Les procédures stockées sont une fonction importante du stockage de base de données, mais MySQL ne prenait pas en charge les procédures stockées avant la version 5.0, ce qui faisait de MySQL dans l'application de grosses remises . Heureusement, MySQL 5.0 a enfin commencé à prendre en charge les procédures stockées, ce qui peut considérablement améliorer la vitesse de traitement de la base de données et également améliorer la flexibilité de la programmation de la base de données.

Création de procédure stockée MySQL

(1)Format

Format de création de procédure stockée MySQL : CREATE PROCEDURE 过程名 ([过程参数[,...]]) [特性 ...] 过程体

Voici un exemple :

mysql> DELIMITER //
mysql> CREATE PROCEDURE proc1(OUT s int)
-> BEGIN
-> SELECT COUNT(*) INTO s FROM user;
-> END
-> //
mysql> DELIMITER ;
Copier après la connexion

Remarque :

Ce qui doit être noté ici est DELIMITER // et DELIMITER ;. nous ne déclarons pas de délimiteur, le compilateur traitera la procédure stockée comme une instruction SQL et le processus de compilation de la procédure stockée signalera une erreur. Par conséquent, nous devons utiliser le mot-clé DELIMITER pour déclarer à l'avance le délimiteur de segment actuel. que MySQL ";" est traité comme du code dans une procédure stockée. Après utilisation, le séparateur doit être restauré.

La procédure stockée peut avoir des paramètres d'entrée, de sortie, d'entrée et de sortie selon les besoins. Il existe un paramètre de sortie s, le type est int. S'il y a plusieurs paramètres, utilisez "," pour les séparer.

Le début et la fin du corps du processus sont marqués par BEGIN et END.

(2). Séparateur de déclaration

En fait, concernant le séparateur de déclaration, l'annotation ci-dessus a été écrite très clairement. Il n'est pas nécessaire d'en dire plus, mais une chose à noter est : si c'est le cas Lorsque vous utilisez l'outil de gestion de l'administrateur MySQL, vous pouvez le créer directement et vous n'avez plus besoin de le déclarer.

(3).Paramètres

  • Les paramètres des procédures stockées MySQL sont utilisés dans la définition des procédures stockées. Il existe trois types de paramètres, IN, OUT, INOUT, sous la forme :

  • CREATE PROCEDURE([[IN |OUT |INOUT ] nom du paramètre type de données...])

  • IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值

  • OUT 输出参数:该值可在存储过程内部被改变,并可返回

  • INOUT 输入输出参数:调用时指定,并且可被改变和返回

代码示例

header('Content-Type:text/html;charset=UTF-8');
$conn = mysql_connect('localhost','root','123456') or die ("数据连接错误!!!");
mysql_select_db('test',$conn);
Copier après la connexion

实例一:无参的存储过程

$sql = "create procedure myproce()
begin
INSERT INTO user (id, username, sex) VALUES (NULL, 's', '0');
end;
";
$res = mysql_query($sql);//创建一个myproce的存储过程
$sql = "call test.myproce();";
$res = mysql_query($sql);//调用myproce的存储过程,则数据库中将增加一条新记录。
var_dump($res);
Copier après la connexion

实例二:传入参数的存储过程

//$sql = "create procedure myproce2(in score int)
//begin
//if score >= 60 then
//select 'pass';
//else
//select 'no';
//end if;
//end;
//";
//mysql_query($sql);//创建一个myproce2的存储过程
//$sql = "call test.myproce2(90);";
//$reslut = mysql_query($sql);//调用myproce2的存储过程,看不到效果,可以在cmd下看到结果。
//$array = mysql_fetch_array($reslut);
//var_dump($array);
Copier après la connexion

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!

Étiquettes associées:
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