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 :
- Nous déclarons un curseur SalaryCursor qui sélectionne l'EmployeeID et le Salary dans la table Employees.
- Nous ouvrons le curseur et récupérons la première ligne dans les variables.
- Dans la boucle WHILE, nous mettons à jour le salaire de chaque employé en le multipliant par 1,1 (augmentation de 10%).
- 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 :
- Le déclencheur trg_UpdateSalary se déclenche après une opération UPDATE sur la table Employees.
- À l'intérieur du déclencheur, nous vérifions si la colonne Salaire a été mise à jour à l'aide de la fonction UPDATE().
- Si le Salaire a été mis à jour, nous modifions la colonne LastModified avec la date et l'heure actuelles (GETDATE()).
- 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!

Cet article explore l'optimisation de l'utilisation de la mémoire MySQL dans Docker. Il traite des techniques de surveillance (statistiques Docker, du schéma de performance, des outils externes) et des stratégies de configuration. Il s'agit notamment des limites de mémoire Docker, de l'échange et des CGROUP, à côté

Cet article aborde l'erreur "Implom Open Open Wibrary" de MySQL. Le problème découle de l'incapacité de MySQL à localiser les bibliothèques partagées nécessaires (fichiers .so / .dll). Les solutions impliquent la vérification de l'installation de la bibliothèque via le package du système m

L'article discute de l'utilisation de l'instruction ALTER TABLE de MySQL pour modifier les tables, notamment en ajoutant / abandon les colonnes, en renommant des tables / colonnes et en modifiant les types de données de colonne.

Cet article compare l'installation de MySQL sur Linux directement par rapport à l'utilisation de conteneurs Podman, avec / sans phpmyadmin. Il détaille les étapes d'installation pour chaque méthode, mettant l'accent sur les avantages de Podman isolément, portabilité et reproductibilité, mais aussi

Cet article fournit un aperçu complet de SQLite, une base de données relationnelle autonome et sans serveur. Il détaille les avantages de SQLite (simplicité, portabilité, facilité d'utilisation) et les inconvénients (limitations de concurrence, défis d'évolutivité). C

Ce guide démontre l'installation et la gestion de plusieurs versions MySQL sur MacOS à l'aide de Homebrew. Il met l'accent sur l'utilisation de Homebrew pour isoler les installations, empêchant les conflits. L'article détaille l'installation, les services de démarrage / d'arrêt et le meilleur PRA

L'article discute de la configuration du cryptage SSL / TLS pour MySQL, y compris la génération et la vérification de certificat. Le problème principal est d'utiliser les implications de sécurité des certificats auto-signés. [Compte de caractère: 159]

L'article traite des outils de GUI MySQL populaires comme MySQL Workbench et PhpMyAdmin, en comparant leurs fonctionnalités et leur pertinence pour les débutants et les utilisateurs avancés. [159 caractères]


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Dreamweaver Mac
Outils de développement Web visuel

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

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.
