Fonction PostgreSQL pour renvoyer une table

Fonction Postgresql Pour Renvoyer Une Table



Parfois, vous souhaiterez peut-être créer une fonction qui renvoie une table dans votre base de données PostgreSQL pour encapsuler le jeu de résultats. Il est possible de créer une fonction « pgSQL » qui vous permet de récupérer les enregistrements et d'utiliser une requête de retour qui affiche l'ensemble de résultats sous forme de table. Cet article vous guide dans la création d'une fonction PostgreSQL qui renvoie une table.

Comment créer une fonction PostgreSQL pour renvoyer une table

Lorsque vous disposez d'une base de données PostgreSQL et que vous souhaitez vérifier les enregistrements de la table, l'utilisation périodique d'une fonction est le moyen le plus pratique, en particulier une fonction PostgreSQL qui renvoie une table dans son jeu de résultats. De cette façon, vous encapsulez votre jeu de résultats et l’utilisation de cette approche contribue à une meilleure organisation du code.

Voici la syntaxe pour créer une fonction PostgreSQL qui renvoie une table :







CRÉER OU REMPLACER UNE FONCTION nom_fonction (liste_paramètres)

TABLE DES RETOURS (column_list)

COMME $$

COMMENCER LA REQUÊTE DE RETOUR (requête);

FIN;

$$ LANGUE plpgsql

L'avantage de la création de telles fonctions est qu'elles vous permettent de spécifier différentes « liste_colonnes » au lieu de renvoyer une seule valeur de votre table. Prenons deux exemples pour nous aider à comprendre les étapes à suivre.



Exemple 1 : Travailler avec une seule entrée

Lors de la création d'une fonction qui renvoie une table, vous devez fournir l'argument à utiliser avec la requête de retour. L'argument peut être un modèle ou une entrée spécifique. Cet exemple donne un cas où nous utilisons une seule entrée comme argument.



Voici la table « étudiant » que nous utiliserons pour notre requête :





Dans l'image suivante, nous créons une fonction nommée « get_student » qui prend un INT comme argument. Dans la section RETURNS TABLE, nous renvoyons un tableau avec quatre colonnes : le « student_id », « student_name », « student_faculty » et « current_status ».



Toutes ces colonnes obtiennent leurs valeurs de la requête de retour que nous définissons. Notez que la requête de retour utilise une instruction WHERE utilisant la liste de paramètres que nous spécifions lors de la création de la fonction.

Une fois la fonction créée, vous obtiendrez une sortie similaire à celle que nous avions précédemment, confirmant que votre fonction PostgreSQL a été créée avec succès. Pour vérifier cela davantage, exécutez la commande suivante pour répertorier les fonctions disponibles :

\df *get_student();

Nous ajoutons les astérisques pour correspondre à toute fonction portant le nom spécifié. Le résultat montre que nous avons notre fonction PostgreSQL dans notre base de données.

La dernière étape consiste à tester la fonction créée. Exécutez l’instruction « select » pour appeler la fonction. Ensuite, ajoutez l’argument attendu. Pour notre cas, le paramètre est de type INT. Ainsi, nous ajoutons 1 comme argument pour récupérer les enregistrements qui lui correspondent et renvoyer une table comme démontré dans ce qui suit :

Exemple 2 : Travailler avec un modèle d'entrée

En cas de doute sur la valeur à utiliser avec la requête de retour, vous pouvez utiliser l'opérateur ILIKE pour faire correspondre un modèle donné. Par exemple, si vous avez un nom et ne connaissez qu'une section de la chaîne, l'opérateur ILIKE vous permet d'utiliser le symbole « % » pour définir à quoi ressemblera votre modèle.

Nous utilisons le tableau suivant pour ce cas et ciblons la colonne name :

Nous créons une fonction similaire à celle que nous avons créée précédemment. Cependant, le type du paramètre a changé et la requête de retour utilise l'opérateur ILIKE qui est ajouté en argument lors de l'appel de la fonction.

Une fois la fonction prête, nous pouvons l'appeler pour renvoyer la table. Il existe différentes manières de procéder. Par exemple, si le modèle de recherche contient « Jo » dans la chaîne, nous exécutons la requête de commande comme suit :

Sélectionnez * dans get_details('%Jo%');

Nous faisons correspondre toutes les valeurs avec « Jo » dans leur chaîne, ce qui nous donne deux enregistrements.

Si nous ne connaissons que la dernière partie d'une chaîne, nous tordons la requête et l'exécutons comme suit :

Sélectionnez * dans get_details('%Tyson');

Enfin, si nous connaissons la première partie de la chaîne, nous ajoutons le symbole « & » après le motif comme indiqué ci-dessous :

Sélectionnez * dans get_details('Tim%');

Ce sont les différents exemples d'utilisation de la fonction PostgreSQL pour renvoyer une table.

Conclusion

PostgreSQL est une base de données puissante dotée de nombreuses fonctionnalités. Lors de la création de fonctions, vous pouvez les configurer pour qu'elles renvoient une table comme ensemble de résultats pour différentes raisons, notamment pour réaliser l'encapsulation. Cet article présentait deux exemples de création et d'utilisation d'une fonction qui renvoie une table dans PostgreSQL.