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 |
|
[ODER ERSETZEN] |
|
Funktion |
|
ZURÜCKKEHREN |
|
Sprache plpgsql |
|
Funktionskörper |
|
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
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
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.
Und wir können die Funktion identifizieren get_car_Price() im Funktionen Liste, wie wir im folgenden Screenshot sehen können:
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:
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:
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.
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.
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:
So rufen Sie eine benutzerdefinierte Funktion auf
In PostgreSQL können wir die benutzerdefinierte Funktion auf drei Arten aufrufen:
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.
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 .
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 ':=' .
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 .
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.
Ü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.