logo

Fonctions PostgreSQL

Dans cette section, nous allons comprendre le fonctionnement du Fonctions PostgreSQL, créer une fonction commande, et voir l'exemple en temps réel de Commande PostgreSQL CREATE FUNCTION en utilisant les différents outils de PostgreSQL tels que pgadmin4 et Coquille SQL (PSQL).

Et voyez l'exemple d'appel d'un fonction définie par l'utilisateur tel que notation positionnelle nommée notation, la notation mixte.

Qu'est-ce que la fonction PostgreSQL ?

Une fonction PostgreSQL ou un procédure stockée est un ensemble de commandes SQL et procédurales telles que déclarations, affectations, boucles, flux de contrôle etc. stockés sur le serveur de base de données et peuvent être impliqués en utilisant le Interface SQL . Et on l'appelle aussi Procédures stockées PostgreSQL .

Nous pouvons créer des fonctions PostgreSQL dans des langages serval, par exemple, SQL , PL/pgSQL , C , Python etc.

Cela nous permet d'effectuer des opérations, qui nécessiteraient généralement diverses commandes et allers-retours dans une fonction de la base de données.

Qu'est-ce que la commande PostgreSQL CREATE Function ?

Dans PostgreSQL, si nous voulons spécifier une nouvelle fonction définie par l'utilisateur, nous pouvons utiliser le CRÉER UNE FONCTION commande.

Syntaxe de la commande de fonction PostgreSQL CREATE

La syntaxe pour Commande de fonction PostgreSQL CREATE est comme suit:

 CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype LANGUAGE plpgsql AS $variable_name$ DECLARE declaration; [...] -- variable declaration BEGIN [...] -- logic RETURN variable_name END; $$ 

Dans la syntaxe ci-dessus, nous avons utilisé les paramètres suivants, comme indiqué dans le tableau ci-dessous :

gestionnaire de tâches pour Linux
Paramètres Description
nom_fonction
  • Le nom de la fonction Le paramètre est utilisé pour définir le nom de la fonction.
  • Le nom de la fonction est écrit après le CRÉER UNE FONCTION mot-clé.
[OU REMPLACER]
  • Nous pouvons utiliser le OU REMPLACER mot-clé si nous voulons changer la fonction actuelle.
  • Et c'est un paramètre facultatif.
Fonction
  • Après avoir utilisé le OU REMPLACER mot-clé, nous pouvons définir le fonction liste des paramètres qui sont couverts entre parenthèses après le Nom de la fonction.
  • Et une fonction peut contenir zéro ou plusieurs paramètres.
RETOUR
  • Nous pouvons définir le type de données après le RETOUR mot-clé, que nous allons renvoyer de la fonction.
  • Il peut s'agir d'un type de base, composite ou de domaine ou d'une référence au type d'une colonne de table.
Langue plpgsql
  • Il permet de définir le nom du langage procédural dans lequel la fonction est exécutée.
  • Et pas seulement plpgsql, PostgreSQL prend en charge divers langages procéduraux.
Fonction_corps
  • Le fonction_corps contient les parties exécutables des logiques.

Exemple de commande de création de fonction PostgreSQL

Voyons un autre exemple pour comprendre le fonctionnement du Fonction CRÉER PostgreSQL commande.

Nous prenons le Voiture tableau du Javatpoint base de données, créée dans le didacticiel PostgreSQL.

Création d'une nouvelle fonction

Dans la commande ci-dessous, nous créons une nouvelle fonction, qui compte le Voitures dont Prix_Voiture entre le Price_from et Price_to paramètres:

 Create function get_car_Price(Price_from int, Price_to int) returns int language plpgsql as $$ Declare Car_count integer; Begin select count(*) into Car_count from Car where Car_price between Price_from and Price_to; return Car_count; End; $$; 

Le get_car_Price La fonction est divisée en deux sections principales, qui sont En-tête et corps de fonction .

Nous avons utilisé les paramètres suivants dans le Entête section:

  • Principalement, nous spécifions le nom de la fonction comme get_car_Price(), qui est écrit après le créer une fonction
  • Après cela, le get_car_Price() la fonction contient deux paramètres Prix ​​à partir et Prix_à, ayant un type de données entier.
  • Puis le get_car_Price() La fonction récupère un entier défini par la condition return int.
  • Et à la fin, nous avons utilisé le langage des fonctions comme plpgsql .

Nous avons utilisé les paramètres suivants dans le Corps de fonction section:

  • Nous avons utilisé le chaîne citée en dollars illustration constante dans la section fonction, qui commence par $$ et se termine par $$ .
  • Entre $$ signe, nous pouvons placer un bloc qui recouvre la déclaration et logique de la fonction .
  • Dans le bloc de déclaration, nous avons déclaré une variable appelée Car_count, qui stocke les voitures sélectionnées dans le Voiture
  • Dans le corps de la section bloc, nous avons utilisé le SÉLECTIONNER DANS commande pour sélectionner le Prix des voitures dont les valeurs sont comprises entre Price_from et Price_to et donne le résultat au Car_count
  • A la fin du bloc, nous avons utilisé le RETOUR commande pour obtenir le

Créer une fonction dans PostgreSQL

Dans PostgreSQL, nous pouvons créer une fonction de deux manières :

    PostgreSQL Créer une fonction à l'aide de pgAdmin PostgreSQL Créer une fonction à l'aide de SQL Shell

PostgreSQL Créer une fonction à l'aide de pgAdmin

Nous allons suivre le processus ci-dessous pour créer une fonction dans pgAdmin :

Étape 1

Tout d'abord, nous ouvrirons la dernière version pgAdmin dans notre système local, et nous irons à l'arborescence des objets et nous connecterons au Javatpoint exemple de base de données dans laquelle nous voulons créer une fonction.

Étape 2

Après cela, nous ouvrirons l'outil de requête en cliquant sur L'outil de requête a suivi la section Outils, comme nous pouvons le voir dans la capture d'écran ci-dessous :

convention de dénomination de Java
Fonction PoatgreSQL2

Étape 3

Pour créer le get_car_Price1() fonction, nous utiliserons le code ci-dessus dans la outil de requête et cliquez sur le Exécuter bouton.

Après avoir implémenté la commande ci-dessus, nous obtiendrons la fenêtre de message ci-dessous affichant que la fonction get_car_Price1() a été créé avec succès dans une base de données similaire.

Fonction PoatgreSQL

Et nous pouvons identifier la fonction get_car_Price() dans le Les fonctions liste comme nous pouvons le voir dans la capture d’écran suivante :

Fonction PoatgreSQL

Remarque : Si nous ne parvenons pas à identifier le nom de la fonction, nous pouvons cliquer avec le bouton droit sur le nœud Fonctions et sélectionner l'élément de menu Actualiser... pour réactiver la liste des fonctions :

Fonction PoatgreSQL

Création d'une fonction à l'aide de SQL Shell (psql)

Nous allons suivre le processus ci-dessous pour créer un tableau dans psql :

Étape 1

  • Dans un premier temps, nous ouvrirons le psql dans notre système local, et nous nous connecterons à la base de données où nous voulons créer une fonction.
  • Nous allons créer un tableau dans le point java base de données, que nous avons créée précédemment dans le didacticiel PostgreSQL.

Étape 2

  • Pour connecter une base de données, nous entrerons la commande ci-dessous :
 c javatpoint 

Sortir

Après avoir exécuté la commande ci-dessus, nous obtiendrons le résultat suivant :

Fonction PoatgreSQL

Remarque : Si nous entrons une commande similaire à celle ci-dessus pour créer une fonction, dans psql, elle générera l'erreur ci-dessous : la fonction get_car_price existe déjà avec les mêmes types d'arguments.

Fonction PoatgreSQL

Par conséquent, pour résoudre cette erreur, nous créons une nouvelle fonction comme get_car_Price1 () à l'étape suivante.

Étape 3

différence entre le lion et le tigre

Nous entrerons la commande ci-dessous pour créer une fonction comme get_car_Price1 () dans le point java base de données.

 javatpoint=# Create function get_car_Price1(Price_from int, Price_to int) javatpoint-# returns int javatpoint-# language plpgsql javatpoint-# as javatpoint-# $$ javatpoint$# Declare javatpoint$# Car_count integer; javatpoint$# Begin javatpoint$# select count(*) javatpoint$# into Car_count javatpoint$# from Car javatpoint$# where car_price between Price_from and Price_to; javatpoint$# return Price_count; javatpoint$# End; javatpoint$# $$; 

Sortir

Nous obtiendrons le résultat suivant lors de l'implémentation de la commande ci-dessus, qui affiche que le get_car_Price_count1() la fonction a été créée avec succès.

Fonction PoatgreSQL

Étape 4

Nous pouvons utiliser la commande ci-dessous pour répertorier toutes les fonctions définies par l'utilisateur dans la base de données existante.

 javatpoint=# df 

Sortir

Après avoir exécuté la commande ci-dessus, nous obtiendrons le résultat ci-dessous :

Fonction PoatgreSQL

Comment appeler une fonction définie par l'utilisateur

Dans PostgreSQL, nous pouvons appeler la fonction définie par l'utilisateur de trois manières, qui sont les suivantes :

    Notation positionnelle Notation nommée La notation mixte

Appeler une fonction en utilisant la notation positionnelle

Si nous voulons décrire les arguments dans un ordre similaire à celui des paramètres, nous pouvons appeler une fonction avec le notation positionnelle aide.

commande par SQL aléatoire

Voyons un exemple pour comprendre le Notation positionnelle travailler pour appeler une fonction particulière.

Dans l'exemple ci-dessous, le get_car_price() les arguments sont 26000 et 70000 , ce qui équivaut à Prix ​​à partir et Prix_à paramètres.

 Select get_car_Price(26000,70000); 

Sortir

Nous obtiendrons le résultat suivant en implémentant la commande ci-dessus, qui récupère les quatre lignes dont car_price est entre 26 000 à 70 000.

Fonction PoatgreSQL

Lorsque la fonction n'a pratiquement aucun paramètre, on peut appeler une fonction à l'aide du notation positionnelle .

Si la fonction contient plusieurs paramètres, on peut utiliser le notation nommée pour appeler la fonction particulière car en utilisant le notation nommée rendra l'appel de fonction plus compréhensible.

Appeler une fonction en utilisant la notation nommée

Dans l'exemple ci-dessous, nous affichons le fonctionnement de l'appel du get_car_Price() fonction utilisant la notation nommée :

 select get_car_Price( Price_from => 26000, Price_to => 70000 ); 

Sortir

Nous obtiendrons le résultat suivant en exécutant la commande ci-dessus, qui affiche quatre lignes basées sur la plage de valeurs ci-dessus. car_price .

Fonction PoatgreSQL

Dans la notation mentionnée précédemment, nous avons utilisé la => distinguer les arguments nom et valeur .

PostgreSQL autorise l'ancienne syntaxe créée sur := pour le rétrocompatibilité , comme on peut le voir dans la commande suivante :

 select get_car_Price( Price_from := 26000, Price_to := 70000 ); 

Sortir

Après avoir exécuté la commande ci-dessus, nous obtiendrons un résultat similaire à celui de la commande ci-dessus où nous utilisons le ' =>' au lieu de ':=' .

Fonction PoatgreSQL

Appeler une fonction en utilisant la notation mixte

C'est le regroupement de positionnel et nommé notations.

Voyons un exemple pour comprendre le fonctionnement du Appel d'une fonction en utilisant la notation mixte.

Dans le notation mixte , nous ne pouvons pas utiliser le Paramètres nommés avant Paramètres de position .

Par exemple:

Dans la commande ci-dessous, nous utiliserons le notion nommée pour Prix ​​à partir paramètre comme Price_from=>26000, alors que pour le Prix_à paramètre, nous avons utilisé le notion de position comme 70000 , comme nous pouvons le voir dans la commande ci-dessous :

quels sont les mois du premier trimestre
 select get_car_Price(Price_from=>26000,70000); 

Sortir

Après avoir exécuté la commande ci-dessus, PostgreSQL génère une erreur indiquant que le l'argument de position ne peut pas suivre l'argument nommé .

Fonction PoatgreSQL

Pour résoudre l'erreur ci-dessus, nous utilisons le notation positionnelle et nommée pour le get_car_price() fonction où le 26000 est utilisé pour représenter le Notation positionnelle ; d'autre part, Prix_à=>70000 est utilisé pour représenter le notation nommée :

 select get_car_Price(26000,Price_to=>70000); 

Sortir

Après avoir exécuté la commande ci-dessus, nous obtiendrons la sortie ci-dessous, qui renvoie les voitures dont car_price est compris entre 26 000 et 70 000.

Fonction PoatgreSQL

Aperçu

Dans le Fonction PostgreSQL section, nous avons appris les sujets suivants:

  • Nous avons utilisé le Fonction CRÉER commande pour créer une fonction définie par l'utilisateur pour la table particulière.
  • Nous avons compris le processus de appeler une fonction définie par l'utilisateur à l'aide de différentes notations telles que Positionnel, nommé et mixte.