Database
 sql >> Base de données >  >> RDS >> Database

Comment créer des procédures stockées en SQL ?

Les procédures sont les sous-programmes qui peuvent être créés et enregistrés dans la base de données en tant qu'objets de base de données. Tout comme vous le pouvez dans d'autres langages, vous pouvez également créer et supprimer des procédures dans SQL. Dans cet article, explorons les procédures en SQL avec une syntaxe et des exemples.

Les sujets abordés dans l'article sont :

  • Qu'est-ce qu'une procédure en SQL ?
  • Syntaxe de procédure SQL
  • Exemple de procédure en SQL
  • Avantages des procédures SQL

Qu'est-ce qu'une procédure en SQL ?

Une procédure en SQL (souvent appelée procédure stockée) est une unité réutilisable qui encapsule la logique métier spécifique de l'application. Une procédure SQL est un groupe d'instructions SQL et de logique, compilées et stockées ensemble pour effectuer une tâche spécifique.

Ci-dessous sont répertoriées les principales caractéristiques des procédures SQL :

  • Facile à mettre en œuvre car ils utilisent un langage de haut niveau très simple et fortement typé
  • Prend en charge trois types de paramètres, à savoir les paramètres d'entrée, de sortie et d'entrée-sortie.
  • Plus fiable que les procédures externes équivalentes.
  • Les procédures SQL favorisent la réutilisation et la maintenabilité.
  • Prend en charge un modèle simple mais puissant de gestion des conditions et des erreurs
  • Renvoyer une valeur de statut à une procédure ou à un lot d'appel pour indiquer le succès ou l'échec et la raison de l'échec.

Maintenant que vous savez ce que sont les procédures et pourquoi elles sont nécessaires, discutons de la syntaxe et de l'exemple de procédure en SQL.

Syntaxe des procédures en SQL

Ce qui suit illustre la syntaxe de base de la création d'une procédure en SQL :


CREATE [ OR REPLACE] PROCEDURE procedure_name [
(parameter_name [IN | OUT | IN OUT]  type [ ])]
{IS | AS }
BEGIN [declaration_section]
executable_section 
//SQL statement used in the stored procedure
END
GO

Terminologies de la syntaxe

Paramètre

Un paramètre est une variable qui contient une valeur de n'importe quel type de données SQL valide à travers lequel le sous-programme peut échanger les valeurs avec le code principal. En d'autres termes, les paramètres sont utilisés pour transmettre des valeurs à la procédure. Il existe 3 types de paramètres différents, qui sont les suivants :

  • IN :Il s'agit du paramètre par défaut, qui reçoit toujours les valeurs du programme appelant. C'est une variable en lecture seule à l'intérieur des sous-programmes et sa valeur ne peut pas être modifiée à l'intérieur du sous-programme.
  • SORTIE : Il est utilisé pour obtenir la sortie des sous-programmes.
  • ENTRÉE SORTIE : Ce paramètre est utilisé à la fois pour donner une entrée et pour obtenir la sortie des sous-programmes.

Autres termes

  • nom-procédure spécifie le nom de la procédure. Il doit être unique.
  • L'option [OR REPLACE] permet de modifier une procédure existante.
  • EST | AS Clause, ils définissent le contexte pour exécuter la procédure stockée. La différence est que le mot clé "IS" est utilisé lorsque la procédure est imbriquée dans d'autres blocs et si la procédure est autonome, alors "AS" est utilisé.
  • Code_Block déclare les instructions procédurales qui gèrent tout le traitement au sein de la procédure stockée. Le contenu du code_block dépend des règles et du langage procédural utilisé par la base de données.

Procédure en SQL :Exemples

Exemple1

L'exemple suivant crée une procédure simple qui affiche le message de bienvenue à l'écran lors de son exécution. Ensuite, la procédure sera :

CREATE OR REPLACE PROCEDURE welcome_msg
(para1_name IN VARCHAR2)
IS 
BEGIN 
    dbms_output.put_line (‘Hello World! '|| para1_name);
END; 
/

Exécutez la procédure stockée. Une procédure autonome peut être appelée de deux manières −

  • Utiliser EXÉCUTER mot-clé
  • Appeler le nom de la procédure depuis un bloc SQL

La procédure ci-dessus peut être appelée à l'aide du mot-clé Execute comme suit :

 EXEC welcome_msg (‘Welcome to Edureka!’);

Sortie

Hello World! Welcome to Edureka 

La procédure est exécutée et le message est imprimé sous la forme "Hello World ! Bienvenue sur Edureka".

Exemple2

Supposons que vous ayez un tableau avec les détails de l'Emplyoee, comme, EmployeId, Firstname, Lastname et DepartmentDetails.

Cet exemple crée une procédure SQL qui renverra un nom d'employé lorsque l'EmployeId est donné comme paramètre d'entrée à la procédure stockée. Ensuite, la procédure sera :

Create  PROCEDURE GetStudentName 
(
@employeeID INT,                       --Input parameter ,  employeID of the employee
@employeName VARCHAR(50)  OUT  --Output parameter, employeeName of employee
AS
BEGIN
SELECT @employeName= Firstname+' '+Lastname FROM Employee_Table WHERE EmployeId=@employeID
END

Étapes à exécuter :

  • Déclarer @employeName comme nvarchar(50)
  • EXEC GetStudentName 01, sortie @employeName
  • sélectionnez @employeName

La procédure ci-dessus consistant à donner l'identifiant de l'employé en entrée renvoie le nom de cet employé particulier. Supposons que si nous avons un paramètre de sortie, nous devons d'abord déclarer la variable pour collecter les valeurs de sortie. Voyons maintenant les avantages de la procédure en SQL.

Avantages des procédures en SQL

L'objectif principal des procédures stockées en SQL est de masquer les requêtes SQL directes du code et d'améliorer les performances des opérations de base de données telles que la sélection, la mise à jour et la suppression de données. Les autres avantages de la procédure en SQL sont :

  • Réduit la quantité d'informations envoyées au serveur de base de données. Cela peut devenir un avantage plus important lorsque la bande passante du réseau est moindre.
  • Permet la réutilisation du code
  • Améliore la sécurité puisque vous pouvez accorder à l'utilisateur l'autorisation d'exécuter la procédure stockée au lieu de donner l'autorisation sur les tables utilisées dans la procédure stockée.
  • Prend en charge les appels de procédure imbriqués vers d'autres procédures SQL ou des procédures implémentées dans d'autres langages.

En conclusion, les procédures en SQL (procédures stockées) améliorent non seulement la possibilité de réutiliser le code mais augmentent également les performances de la base de données. Comment? En réduisant le trafic du réseau en réduisant la quantité d'informations envoyées sur le réseau. Avec cela, nous sommes arrivés à la fin de cet article.

Si vous souhaitez en savoir plus sur MySQL et découvrir cette base de données relationnelle open source, consultez notre Formation de certification MySQL DBA qui vient avec une formation en direct dirigée par un instructeur et une expérience de projet réelle. Cette formation vous aidera à comprendre MySQL en profondeur et vous aidera à maîtriser le sujet.

Vous avez une question pour nous ? Veuillez le mentionner dans la section des commentaires de ce document "Procédures en SQL ; article et nous vous répondrons.