recherche
Maisonbase de donnéestutoriel mysqlFonctions, procédures, curseurs et déclencheurs en SQL

Functions, Procedures, Cursors, and Triggers in SQL

Guide complet : fonctions, procédures, curseurs et déclencheurs dans SQL

Dans les systèmes de gestion de bases de données relationnelles (SGBDR), divers composants tels que les fonctions, les procédures, les curseurs et les déclencheurs jouent un rôle essentiel rôles dans l’amélioration de la flexibilité et de la fonctionnalité des systèmes de bases de données. Ils permettent aux développeurs de mettre en œuvre une logique métier personnalisée, d'automatiser les tâches répétitives et de gérer les données plus efficacement.

Ce guide fournira une explication complète de ces composants, ainsi que des exemples d'extraits de code pour chacun.


1. Fonctions en SQL

Une fonction en SQL est un programme stocké qui peut accepter des entrées, effectuer des opérations et renvoyer une valeur. C'est similaire à une procédure, mais une fonction doit renvoyer une valeur et elle peut être utilisée dans des requêtes comme n'importe quelle autre expression.

Points clés :

  • Les fonctions peuvent être invoquées à partir de requêtes.
  • Les fonctions renvoient une valeur unique.
  • Ils peuvent prendre des paramètres d'entrée.
  • Ils sont généralement utilisés pour les calculs, les transformations et la récupération de données.

Exemple de fonction (syntaxe SQL Server)

Écrivons une fonction simple qui calcule le carré d'un nombre.

CREATE FUNCTION dbo.SquareNumber (@Number INT)
RETURNS INT
AS
BEGIN
    RETURN @Number * @Number
END

Utilisation :

SELECT dbo.SquareNumber(4); -- Output: 16

Cette fonction prend un entier en entrée, calcule son carré et renvoie le résultat.


2. Procédures en SQL

Une procédure (également appelée procédure stockée) est un ensemble d'instructions SQL qui peuvent être exécutées comme une unité. Les procédures peuvent prendre des paramètres, effectuer des opérations telles que l'insertion, la mise à jour, la suppression et la sélection, et renvoyer plusieurs résultats (mais pas directement une seule valeur comme les fonctions).

Points clés :

  • Les procédures ne renvoient pas nécessairement une valeur, mais elles peuvent renvoyer plusieurs ensembles de résultats.
  • Ils peuvent effectuer plusieurs opérations.
  • Les procédures peuvent être invoquées explicitement à l'aide de la commande EXEC.

Exemple de procédure (syntaxe SQL Server)

Écrivons une procédure pour mettre à jour le salaire d'un employé.

CREATE PROCEDURE dbo.UpdateSalary 
    @EmployeeID INT, 
    @NewSalary DECIMAL
AS
BEGIN
    UPDATE Employees
    SET Salary = @NewSalary
    WHERE EmployeeID = @EmployeeID;
END

Utilisation :

EXEC dbo.UpdateSalary @EmployeeID = 101, @NewSalary = 75000;

Cette procédure prend un EmployeeID et un NewSalary comme entrées, met à jour le salaire de l'employé et ne renvoie aucune valeur.


3. Curseurs en SQL

Un curseur en SQL est un objet de base de données qui vous permet de récupérer et de traiter chaque ligne renvoyée par une requête une à la fois. Ceci est particulièrement utile lorsque vous devez effectuer des opérations ligne par ligne, telles que des mises à jour ou des suppressions, qui ne sont pas facilement gérées dans une seule opération basée sur un ensemble.

Points clés :

  • Les curseurs peuvent être utilisés pour parcourir les ensembles de résultats de requête.
  • Ils sont généralement utilisés lorsque les opérations basées sur des ensembles ne suffisent pas.
  • Les curseurs peuvent être classés en différents types (statiques, dynamiques, avant uniquement, etc.).

Exemple de curseur (syntaxe SQL Server)

Écrivons un exemple en utilisant un curseur pour mettre à jour le salaire de tous les employés de 10 %

CREATE FUNCTION dbo.SquareNumber (@Number INT)
RETURNS INT
AS
BEGIN
    RETURN @Number * @Number
END

Explication :

  1. Nous déclarons un curseur SalaryCursor qui sélectionne l'EmployeeID et le Salary dans la table Employees.
  2. Nous ouvrons le curseur et récupérons la première ligne dans les variables.
  3. Dans la boucle WHILE, nous mettons à jour le salaire de chaque employé en le multipliant par 1,1 (augmentation de 10%).
  4. Après avoir traité toutes les lignes, nous fermons et libérons le curseur.

4. Déclencheurs en SQL

Un déclencheur est un type spécial de procédure stockée qui s'exécute automatiquement (ou se "déclenche") lorsque des événements de base de données spécifiques se produisent, tels que INSERT, UPDATE ou DELETE sur une table. Les déclencheurs sont utiles pour appliquer des règles métier, maintenir l'intégrité des données ou mettre à jour automatiquement les tables associées lorsque des modifications se produisent.

Points clés :

  • Les déclencheurs peuvent être AVANT ou APRÈS l'événement (insérer, mettre à jour, supprimer).
  • Les déclencheurs peuvent se déclencher une fois par instruction ou une fois par ligne (selon le type).
  • Ils sont souvent utilisés pour appliquer des règles d'intégrité ou suivre les modifications.

Exemple de déclencheur (syntaxe SQL Server)

Créons un déclencheur qui met automatiquement à jour la colonne LastModified chaque fois que le salaire d'un employé est mis à jour.

SELECT dbo.SquareNumber(4); -- Output: 16

Explication :

  1. Le déclencheur trg_UpdateSalary se déclenche après une opération UPDATE sur la table Employees.
  2. À l'intérieur du déclencheur, nous vérifions si la colonne Salaire a été mise à jour à l'aide de la fonction UPDATE().
  3. Si le Salaire a été mis à jour, nous modifions la colonne LastModified avec la date et l'heure actuelles (GETDATE()).
  4. La table insérée est une table spéciale qui contient les nouvelles valeurs après l'opération de mise à jour, et nous l'utilisons pour mettre à jour le champ LastModified pour le(s) employé(s) modifié(s).

Résumé des composants SQL

Component Description Example Use Case
Function A stored program that returns a single value and can be used in queries. Calculate the square of a number.
Procedure A stored program that can perform multiple actions (insert, update, delete) but does not return a value. Update an employee’s salary.
Cursor A mechanism for iterating over a result set row-by-row, used for operations that cannot be easily expressed in set-based SQL. Update all employees’ salaries by a fixed percentage.
Trigger A stored program that automatically executes when specific database events (INSERT, UPDATE, DELETE) occur. Automatically update a timestamp column when a record is modified.

Conclusion

  • Les Fonctions et procédures sont essentielles pour modulariser la logique métier et les opérations réutilisables dans la base de données. Les fonctions sont davantage axées sur le renvoi d'une valeur, tandis que les procédures peuvent gérer plusieurs tâches mais ne renvoient pas de valeurs directement.
  • Les Curseurs sont utilisés lorsque vous devez traiter des données ligne par ligne, bien que les opérations basées sur des ensembles soient généralement plus efficaces.
  • Les Déclencheurs permettent des réponses automatiques aux événements de la base de données, garantissant l'intégrité des données et appliquant les règles sans nécessiter d'intervention manuelle.

Chacun de ces composants remplit un objectif unique en rendant votre base de données plus flexible, plus maintenable et plus efficace, en particulier dans les environnements de bases de données complexes.

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
Quelles sont les limites de l'utilisation de vues dans MySQL?Quelles sont les limites de l'utilisation de vues dans MySQL?May 14, 2025 am 12:10 AM

MySQLViewShavelimitations: 1) Theydon'tsupportalLSQLOPERations, restreignantDatamanipulation à travers la vue

Sécuriser votre base de données MySQL: ajouter des utilisateurs et accorder des privilègesSécuriser votre base de données MySQL: ajouter des utilisateurs et accorder des privilègesMay 14, 2025 am 12:09 AM

La bonne gestion de la gestion de la direction

Quels facteurs influencent le nombre de déclencheurs que je peux utiliser dans MySQL?Quels facteurs influencent le nombre de déclencheurs que je peux utiliser dans MySQL?May 14, 2025 am 12:08 AM

MySQLDOES NONTIMPOSEAHARDLIMITORSTRIGRERS, BUTPRATICALFACTORSEDERTERMINETHEIREFFECTYUSE: 1) ServerConfiguration ImpactStriggerManagement; 2) ComplexTriggersInCreasgeSystemload; 3) LargerTableSlowtriggerPerformance; 4) HighCunCurrencyCanCauseTr fichestring; 5) M) M

MySQL: Est-il sûr de stocker blob?MySQL: Est-il sûr de stocker blob?May 14, 2025 am 12:07 AM

Oui, il estafetostoreblobdatainmysql, maisonssider cesfacteurs: 1) stockage: BlobScConSugnifants espace, potentiellement en augmentation

MySQL: ajout d'un utilisateur via une interface Web PHPMySQL: ajout d'un utilisateur via une interface Web PHPMay 14, 2025 am 12:04 AM

L'ajout d'utilisateurs de MySQL via l'interface Web PHP peut utiliser les extensions MySQLI. Les étapes sont les suivantes: 1. Connectez-vous à la base de données MySQL et utilisez l'extension MySQLI. 2. Créez un utilisateur, utilisez l'instruction CreateUser et utilisez la fonction Password () pour crypter le mot de passe. 3. Empêchez l'injection SQL et utilisez la fonction mysqli_real_escape_string () pour traiter l'entrée de l'utilisateur. 4. Attribuez des autorisations aux nouveaux utilisateurs et utilisez la déclaration de subvention.

MySQL: Blob et autres stockages sans SQL, quelles sont les différences?MySQL: Blob et autres stockages sans SQL, quelles sont les différences?May 13, 2025 am 12:14 AM

MySQL'sblobissuitable ForstoringBinaryDatawithInarelationDatabase, WhileLenosqloloptionsLikEmongoDB, redis et Cassandraofferflexible, ScalablesButions forununstructureddata.blobissimplerbutcanslowdownporduit

MySQL Ajouter un utilisateur: syntaxe, options et meilleures pratiques de sécuritéMySQL Ajouter un utilisateur: syntaxe, options et meilleures pratiques de sécuritéMay 13, 2025 am 12:12 AM

ToaddauserRinmysql, utilisation: CreateUser'Username '@' host'identifiedBy'password '; ici'showtodoitsecurely: 1) ChoosetheHostCarelyToCon trolaccess.2) setResourcelimits withoptionslikemax_queries_per_hour.3) usestrong, uniquepasswords.4) Enforcessl / tlsconnectionwith

MySQL: Comment éviter les types de données de chaîne des erreurs courantes?MySQL: Comment éviter les types de données de chaîne des erreurs courantes?May 13, 2025 am 12:09 AM

ToavoidcomMonmistakeswithstringDatatyPesInmysql, compréhension de compréhension, chooseTherightType, andManageEncodingAndCollationSettingSeffectively.1) usECHARFORFIXED-LEGLINGSTRING

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.