Table des matières
Une procédure stockée (Store Procedure) est un petit algorithme en langage SQL qui est stocké avec la base de données et permet d'effectuer des tâches sur ces données.Les avantages des procédures stockées sont :
- Ils peuvent accéder à partir de différents programmes externes, s'il est nécessaire de rendre publique la structure de la base de données.
- Ils peuvent réutilisation donc nous gagnerons du temps en étant déjà programmé et testé.
Utiliser les procédures stockées mysql, avec phpmyadmin
Nous allons commencer le travail de création et d'interrogation des procédures stockées avec l'outil phpmyadmin, mais toute personne prenant en charge les requêtes SQL à partir de MYSQL 5.0 peut être utilisée
Dans ce cas, nous prendrons la base de données d'une agence automobile ou automobile.
1) Nous entrons dans phpmyadmin et de là dans la base de données
Il existe 2 types de moteurs qui gèrent les données dans Mysql
- Mon ISAM : le moteur par défaut, très rapide pour les requêtes, n'assure pas l'intégrité des données ni la protection référentielle. Systèmes idéaux avec de nombreuses requêtes
- InnoDB : fournit une protection référentielle et l'intégrité des données ainsi qu'un verrouillage des enregistrements, idéal si de nombreuses informations sont constamment insérées, modifiées ou supprimées. En général, pour les procédures stockées, il est préférable d'utiliser InnoDB.
Dans l'onglet SQL, nous créons notre première procédure stockée pour interroger les types de véhicules. Écrivez-nous dans le champ de texte de sql.
CREATE PROCEDURE consult_vehicle_type () ---> nom de la procédure
SELECT * FROM vehicle_type ---> SQL à résoudre
Si nous exécutons la requête SQL, nous recevrons un message de réussite lors de la création de la procédure.
Pour voir les procédures créées à partir de l'onglet SQL, on consulte la commande SHOW PROCEDURE STATUS, qui n'affichera pas toutes les procédures stockées.
Nous allons maintenant montrer comment exécuter la procédure stockée avec la commande CALL nom_procédure (Chaque langage de programmation a sa propre bibliothèque pour accéder à une procédure stockée, mais ils sont tous similaires.
Ici, nous pouvons voir le résultat de l'exécution de la procédure stockée CALL pa_vehiculo_type, elle a renvoyé le résultat et personne ne voit quelles commandes ont été exécutées.
Dans l'exemple suivant nous allons lister les véhicules mais par marque, la procédure serait :
PROCÉDURE DE CRÉATION pa_vehiculos_por_brand (marque varchar (50))
SÉLECTIONNER * DE
véhicules, marques
O vehiculos.brand = marks.id
ET marques.marque = marque
Au nom de la procédure nous ajoutons une variable pour pouvoir rechercher un exemple de véhicules de marque Honda
Pour exécuter l'exemple, nous appelons la procédure stockée dans un onglet SQL
APPELEZ pa_vehiculos_por_marca (« Honda »)
APPELEZ pa_vehiculos_por_marca (« Ford »)
Vous pouvez également utiliser les procédures stockées pour insérer des tâches, par exemple une procédure pour enregistrer les données d'un client
CRÉER LA PROCÉDURE pa_cliente_insertar (
vnom VARCHAR (64),
nom VARCHAR (64)
)
INSERT INTO client (nom, prénom) VALUES (vname,);
Pour l'utiliser, nous l'appelons comme suit
APPEL pa_cliente_insertar ('José', 'Gonzales');
Un autre pourrait être Vérifier le nombre de provinces
CRÉER LA PROCÉDURE `pa_provincias_cantidad` ()
SELECTIONNER LE COMPTE (*) en tant que provinces FROM provinces
Pour éliminer toute procédure est utilisée PROCÉDURE DE LAISSE nom_procédure
Appels de procédures depuis différentes langues.
Dans PHP, en supposant que les données proviennent d'un formulaire
$ mysqli = new mysqli ("localhost", "root", "root");
$ mysqli-> select_db ("auto_agency");
$ mysqli-> query ("CALL pa_client_insert ('$ prenom', '$ nom de famille')");
Exécutons maintenant la procédure stockée dans Java (le code a été raccourci)
conn = MySQL Connection.connect ("127,0,0,1", "root", "*******", "root");
CallableStatement Procedure = conn.prepareCall ("{CALL pa_customer_insert ('$ prénom', '$ nom de famille'))}");
Procedure.setString ("vname", $ nom);
Procedure.setString ("nom", $ nom);
Procedure.execute ();
connM.commit ();
De cette manière, il est montré que les mêmes procédures ont été utilisées dans différents environnements et langues, de manière transparente pour l'utilisateur. Le sujet des procédures est vaste mais toute personne ayant des connaissances en SQL sera en mesure d'enquêter et d'obtenir de grandes réalisations avec l'utilisation de procédures stockées, pouvant ainsi optimiser leurs projets en termes de temps et de sécurité des données.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif