★ À maîtriser
Compléments
📌 Avant d’écrire une fonction, il faut annoncer ses entrées, son résultat et le comportement attendu lorsqu’aucune donnée ne répond à la question.
Question répétée → point d’entrée réutilisable → moins d’oublis de filtre ou de jointure
Dans une signature PL/pgSQL, RETURNS integer annonce un décompte entier et non une liste de lignes ou un message d’alerte.
Dans le squelette d’une fonction PL/pgSQL, DECLARE prépare les variables, BEGIN et END délimitent le traitement, puis RETURN fournit le résultat promis au contrat.
Entrer → calculer → retourner
📌 Un paramètre est une valeur fournie par l’appelant, une variable stocke un résultat intermédiaire dans le bloc et une colonne représente une donnée provenant d’une ligne SQL.
📌 Dans une fonction, un SELECT qui produit des lignes doit avoir une destination explicite, généralement INTO pour une variable ou RETURN QUERY pour un retour tabulaire.
Paramètre fourni par l’appelant, variable stockée dans le bloc, colonne issue d’une ligne SQL
★ À maîtriser
📌 Dans don.stock_disponible, un groupe inconnu provoque RETURN NULL, tandis qu’un groupe connu sans poche disponible retourne 0, car COUNT(*) produit alors zéro.
Compléments
📌 COALESCE(v_stock, 0) transforme NULL en zéro, mais ce choix de contrat peut faire passer un groupe mal orthographié pour un groupe sans stock.
Groupe connu sans stock = 0 ; groupe inconnu = NULL
📌 Le type de retour doit répondre au besoin métier : COUNT convient à un décompte, EXISTS à une existence et RETURN QUERY à une liste de poches.
COUNT répond combien, EXISTS répond si, RETURN QUERY répond quoi
★ À maîtriser
📌 Une requête SELECT INTO doit respecter le grain métier : un agrégat peut produire un total unique, tandis qu’une sélection de plusieurs lignes ne devient pas automatiquement un seul résultat.
Compléments
Filtrer → agréger → déposer → retourner
★ À maîtriser
📌 Une fonction robuste rend visibles ses entrées, son grain, la destination du résultat, son comportement dans le cas vide et les tests qui vérifient son contrat.
Compléments
📌 Une fonction est appelée dans SELECT et retourne un résultat, tandis qu’une procédure est appelée avec CALL et organise plutôt une action ou un effet de bord.
Entrées → grain → destination → cas vide → test
Types de contrats de fonction
| Besoin | Contrat | Stratégie |
|---|---|---|
| Décompte d’un stock | RETURNS integer | COUNT puis RETURN |
| Existence d’une collecte | RETURNS boolean | EXISTS puis RETURN |
| Liste de poches | Fonction tabulaire | RETURN QUERY |
Teste tes connaissances sur Fonctions PL/pgSQL et contrats avec 17 questions à choix multiples et corrections détaillées.
1. Quel est le rôle général d’une fonction PostgreSQL encapsulant une question SQL répétée ?
2. Quelle séquence correspond à la transformation d’une question métier répétée en fonction PostgreSQL ?
Mémorisez les concepts clés de Fonctions PL/pgSQL et contrats avec 37 flashcards interactives.
Qu'est-ce qu'une fonction PostgreSQL ?
Une fonction PostgreSQL reçoit des paramètres, traite et retourne un résultat typé.
Quelle est la première étape pour transformer une question répétée en fonction ?
Définir les entrées de la fonction.
Que fait-on après avoir défini les entrées dans une fonction SQL ?
Filtrer les données selon la question métier.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches