logo

PostgreSQL-Funktionen

In diesem Abschnitt werden wir die Funktionsweise des verstehen PostgreSQL-Funktionen, Funktion erstellen Befehl und sehen Sie sich das Echtzeitbeispiel von an PostgreSQL CREATE FUNCTION-Befehl Verwendung der verschiedenen Tools von PostgreSQL wie z pgadmin4 Und SQL-Shell (PSQL).

Und sehen Sie sich das Beispiel des Aufrufs von a an Benutzerdefinierte Funktion wie zum Beispiel Positionsnotation namens Notation, die gemischte Notation.

Was ist die PostgreSQL-Funktion?

Eine PostgreSQL-Funktion oder eine gespeicherte Prozedur ist eine Reihe von SQL- und prozeduralen Befehlen wie z Deklarationen, Zuweisungen, Schleifen, Kontrollfluss etc. auf dem Datenbankserver gespeichert und können über die eingebunden werden SQL-Schnittstelle . Und es ist auch bekannt als Gespeicherte PostgreSQL-Prozeduren .

Wir können PostgreSQL-Funktionen in mehreren Sprachen erstellen, zum Beispiel SQL , PL/pgSQL , C , Python usw.

Es ermöglicht uns, Operationen auszuführen, die im Allgemeinen verschiedene Befehle und Roundtrips in einer Funktion innerhalb der Datenbank erfordern würden.

Was ist der PostgreSQL-Befehl CREATE Function?

Wenn wir in PostgreSQL eine neue benutzerdefinierte Funktion angeben möchten, können wir die verwenden FUNKTION ERSTELLEN Befehl.

Syntax des PostgreSQL-Befehls CREATE Function

Die Syntax für PostgreSQL-Befehl CREATE Function ist wie folgt:

 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; $$ 

In der obigen Syntax haben wir die folgenden Parameter verwendet, wie in der folgenden Tabelle gezeigt:

SQL-Server-Pivot
Parameter Beschreibung
Funktionsname
  • Der Funktionsname Der Parameter wird verwendet, um den Funktionsnamen zu definieren.
  • Der Funktionsname wird nach dem geschrieben FUNKTION ERSTELLEN Stichwort.
[ODER ERSETZEN]
  • Wir können das nutzen ODER ERSETZEN Schlüsselwort, wenn wir die aktuelle Funktion ändern möchten.
  • Und es ist ein optionaler Parameter.
Funktion
  • Nach der Verwendung des ODER ERSETZEN Schlüsselwort, wir können das definieren Funktion Parameterliste, die in Klammern nach dem steht Funktionsname.
  • Und eine Funktion kann null oder mehrere Parameter enthalten.
ZURÜCKKEHREN
  • Wir können den Datentyp nach dem definieren ZURÜCKKEHREN Schlüsselwort, das wir von der Funktion zurückgeben werden.
  • Es kann sich um einen Basistyp, einen zusammengesetzten Typ, einen Domänentyp oder eine Referenz auf den Typ einer Tabellenspalte handeln.
Sprache plpgsql
  • Es wird verwendet, um den Namen der prozeduralen Sprache zu definieren, in der die Funktion ausgeführt wird.
  • Und nicht nur plpgsql, PostgreSQL unterstützt verschiedene prozedurale Sprachen.
Funktionskörper
  • Der Funktionskörper enthält die ausführbaren Teile der Logik.

Beispiel für den PostgreSQL-Befehl „Funktion erstellen“.

Sehen wir uns ein anderes Beispiel an, um die Funktionsweise zu verstehen PostgreSQL CREATE-Funktion Befehl.

Wir nehmen das Auto Tabelle aus der Javatpoint Datenbank, erstellt im PostgreSQL-Tutorial.

Erstellen einer neuen Funktion

Mit dem folgenden Befehl erstellen wir eine neue Funktion, die zählt Autos wessen Car_Price zwischen den Price_from und Price_to Parameter:

 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; $$; 

Der get_car_Price Die Funktion ist in zwei Hauptabschnitte unterteilt: Header und Funktionskörper .

Wir haben die folgenden Parameter verwendet Header Abschnitt:

  • In erster Linie geben wir den Funktionsnamen als an get_car_Price(), welches wird nach dem geschrieben Funktion erstellen
  • Danach wird die get_car_Price() Die Funktion enthält zwei Parameter Preis von Und Preis_bis, mit ganzzahligem Datentyp.
  • Dann ist die get_car_Price() Die Funktion ruft eine durch die Return-Int-Bedingung definierte Ganzzahl ab.
  • Und am Ende haben wir die Funktion Sprache als verwendet plpgsql .

Wir haben die folgenden Parameter verwendet Funktionskörper Abschnitt:

  • Wir haben das verwendet Zeichenfolge in Dollar-Anführungszeichen konstante Darstellung im Funktionsabschnitt, der mit beginnt $$ und endet mit $$ .
  • Zwischen $$ Zeichen, wir können einen Block platzieren, der abdeckt die Erklärung Und Logik der Funktion .
  • Im Deklarationsblock haben wir eine Variable namens deklariert Car_count, Hier werden die ausgewählten Autos gespeichert Auto
  • Im Hauptteil des Blockabschnitts haben wir das verwendet AUSWÄHLEN IN Befehl zum Auswählen des Preises von Autos, deren Werte dazwischen liegen Price_from und Price_to und geben Sie die Ausgabe an die Car_count
  • Am Ende des Blocks haben wir das verwendet ZURÜCKKEHREN Befehl, um das zu bekommen

Erstellen einer Funktion in PostgreSQL

In PostgreSQL können wir eine Funktion auf zwei Arten erstellen:

    PostgreSQL-Funktion zum Erstellen mit pgAdmin PostgreSQL-Erstellungsfunktion mit SQL Shell

PostgreSQL-Funktion zum Erstellen mit pgAdmin

Wir werden dem folgenden Prozess folgen, um eine Funktion zu erstellen pgAdmin:

Schritt 1

Zunächst öffnen wir die neueste Version pgAdmin in unserem lokalen System, und wir gehen zum Objektbaum und stellen eine Verbindung zum her Javatpoint Beispieldatenbank, in der wir eine Funktion erstellen möchten.

Schritt 2

Anschließend öffnen wir mit einem Klick auf das Abfragetool Das Abfragetool folgte dem Abschnitt „Tools“. wie wir im folgenden Screenshot sehen können:

Text mit CSS unterstreichen
PoatgreSQL-Funktion2

Schritt 3

Um das zu erstellen get_car_Price1() Funktion verwenden wir den obigen Code in der Abfragetool und klicken Sie auf Ausführen Taste.

Nach der Implementierung des obigen Befehls erhalten wir das folgende Meldungsfenster, in dem die Funktion angezeigt wird get_car_Price1() ist gewesen erstellt erfolgreich in eine ähnliche Datenbank übertragen.

PoatgreSQL-Funktion

Und wir können die Funktion identifizieren get_car_Price() im Funktionen Liste, wie wir im folgenden Screenshot sehen können:

PoatgreSQL-Funktion

Hinweis: Wenn wir den Funktionsnamen nicht identifizieren können, können wir mit der rechten Maustaste auf den Knoten „Funktionen“ klicken und den Menüpunkt „Aktualisieren...“ auswählen, um die Funktionsliste wiederzubeleben:

PoatgreSQL-Funktion

Erstellen einer Funktion mit SQL Shell (psql)

Wir werden dem folgenden Prozess folgen, um eine Tabelle zu erstellen psql :

Schritt 1

  • Zuerst öffnen wir die psql in unserem lokalen System, und wir stellen eine Verbindung zu der Datenbank her, in der wir eine Funktion erstellen möchten.
  • Wir werden eine Tabelle erstellen javatpoint Datenbank, die wir zuvor im PostgreSQL-Tutorial erstellt haben.

Schritt 2

  • Um eine Datenbank zu verbinden, geben wir den folgenden Befehl ein:
 c javatpoint 

Ausgabe

Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Ausgabe:

PoatgreSQL-Funktion

Hinweis: Wenn wir in psql einen ähnlichen Befehl wie oben eingeben, um eine Funktion zu erstellen, wird der folgende Fehler ausgegeben: Die Funktion get_car_price existiert bereits mit denselben Argumenttypen.

PoatgreSQL-Funktion

Um diesen Fehler zu beheben, erstellen wir daher eine neue Funktion als get_car_Price1 () im nächsten Schritt.

Schritt 3

öffentliches vs. privates Java

Wir geben den folgenden Befehl ein, um eine Funktion zu erstellen als get_car_Price1 () im javatpoint Datenbank.

 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$# $$; 

Ausgabe

Bei der Implementierung des obigen Befehls erhalten wir die folgende Ausgabe, die anzeigt, dass die get_car_Price_count1() Funktion wurde erfolgreich erstellt.

PoatgreSQL-Funktion

Schritt 4

Mit dem folgenden Befehl können wir alle benutzerdefinierten Funktionen in der vorhandenen Datenbank auflisten.

 javatpoint=# df 

Ausgabe

Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Ausgabe:

PoatgreSQL-Funktion

So rufen Sie eine benutzerdefinierte Funktion auf

In PostgreSQL können wir die benutzerdefinierte Funktion auf drei Arten aufrufen:

    Positionsnotation Benannte Notation Die gemischte Notation

Aufrufen einer Funktion mithilfe der Positionsnotation

Wenn wir die Argumente in ähnlicher Reihenfolge als Parameter beschreiben wollen, können wir eine Funktion mit aufrufen Positionsnotationen helfen.

math.pow Java

Sehen wir uns ein Beispielbeispiel an, um das zu verstehen Positionsnotation daran arbeiten, eine bestimmte Funktion aufzurufen.

Im folgenden Beispiel ist die get_car_price() Argumente sind 26000 Und 70000 , was dem entspricht Preis von Und Price_to Parameter.

 Select get_car_Price(26000,70000); 

Ausgabe

Bei der Implementierung des obigen Befehls erhalten wir die folgende Ausgabe, die die vier Zeilen abruft, deren car_price ist zwischen 26000 bis 70000.

PoatgreSQL-Funktion

Wenn die Funktion kaum Parameter hat, können wir eine Funktion mit Hilfe von aufrufen Positionsnotation .

Wenn die Funktion mehrere Parameter enthält, können wir die verwenden benannte Notation um die jeweilige Funktion aufzurufen, da die verwendet wird benannte Notation wird den Funktionsaufruf verständlicher machen.

Aufrufen einer Funktion mit benannter Notation

Im folgenden Beispiel zeigen wir die Funktionsweise des Aufrufs von get_car_Price() Funktion mit der benannten Notation:

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

Ausgabe

Bei der Ausführung des obigen Befehls erhalten wir die folgende Ausgabe, die vier Zeilen basierend auf dem oben genannten Bereich anzeigt car_price .

PoatgreSQL-Funktion

In der zuvor erwähnten Notation haben wir die verwendet => um die Argumente zu unterscheiden Name und Wert .

PostgreSQL ermöglicht die Erstellung der älteren Syntax auf := für die Rückwärtskompatibilität , wie wir im folgenden Befehl sehen können:

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

Ausgabe

Nach der Ausführung des obigen Befehls erhalten wir eine ähnliche Ausgabe wie das Ergebnis des obigen Befehls, bei dem wir den Befehl „ =>' anstatt ':=' .

PoatgreSQL-Funktion

Aufrufen einer Funktion mit der gemischten Notation

Es ist die Gruppierung von positionell und benannt Notationen.

Sehen wir uns ein Beispielbeispiel an, um die Funktionsweise zu verstehen Aufrufen einer Funktion mit gemischter Notation.

Im gemischte Notation , wir können das nicht verwenden benannte Parameter Vor Positionsparameter .

Zum Beispiel:

Im folgenden Befehl verwenden wir die benannter Begriff für Preis von Parameter als Preis_von=>26000, während für die Price_to Parameter haben wir verwendet Positionsvorstellung als 70000 , wie wir im folgenden Befehl sehen können:

pd.merge
 select get_car_Price(Price_from=>26000,70000); 

Ausgabe

Nach der Ausführung des obigen Befehls gibt PostgreSQL einen Fehler aus, der besagt, dass der Das Positionsargument kann nicht auf das benannte Argument folgen .

PoatgreSQL-Funktion

Um den oben genannten Fehler zu beheben, verwenden wir die Positions- und benannte Notation für die get_car_price() Funktion, bei der die 26000 wird verwendet, um das darzustellen Positionsnotation; andererseits, Price_to=>70000 wird verwendet, um das darzustellen benannte Notation :

 select get_car_Price(26000,Price_to=>70000); 

Ausgabe

Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir die folgende Ausgabe, die die Autos zurückgibt, deren car_price liegt zwischen 26000 und 70000.

PoatgreSQL-Funktion

Überblick

Im PostgreSQL-Funktion Abschnitt haben wir die folgenden Themen gelernt:

  • Wir haben das verwendet CREATE-Funktion Befehl zum Erstellen einer benutzerdefinierten Funktion für die bestimmte Tabelle.
  • Wir haben den Prozess verstanden Aufruf einer benutzerdefinierten Funktion mit Hilfe verschiedener Notationen wie z Positional, benannt und gemischt.