PostgreSQL-Funktion zur Rückgabe einer Tabelle

Postgresql Funktion Zur Ruckgabe Einer Tabelle



Manchmal möchten Sie möglicherweise eine Funktion erstellen, die eine Tabelle in Ihrer PostgreSQL-Datenbank zurückgibt, um die Ergebnismenge zu kapseln. Es ist möglich, eine „pgSQL“-Funktion zu erstellen, mit der Sie die Datensätze abrufen können und eine Rückgabeabfrage verwendet, die die Ergebnismenge als Tabelle anzeigt. Dieser Beitrag führt Sie durch die Erstellung einer PostgreSQL-Funktion, die eine Tabelle zurückgibt.

So erstellen Sie eine PostgreSQL-Funktion zur Rückgabe einer Tabelle

Wenn Sie über eine PostgreSQL-Datenbank verfügen und Datensätze aus der Tabelle überprüfen möchten, ist die regelmäßige Verwendung einer Funktion die bequemste Methode, insbesondere einer PostgreSQL-Funktion, die eine Tabelle in ihrer Ergebnismenge zurückgibt. Auf diese Weise kapseln Sie Ihre Ergebnismenge und die Verwendung dieses Ansatzes trägt zu einer besseren Codeorganisation bei.

Im Folgenden finden Sie die Syntax zum Erstellen einer PostgreSQL-Funktion, die eine Tabelle zurückgibt:







FUNKTION ERSTELLEN ODER ERSETZEN Funktionsname(Parameterliste)

RÜCKGABETABELLE(column_list)

AS $$

BEGIN RETURN QUERY(query);

ENDE;

$$ SPRACHE plpgsql

Das Gute an der Erstellung solcher Funktionen ist, dass Sie damit verschiedene „column_list“ angeben können, anstatt einen einzelnen Wert aus Ihrer Tabelle zurückzugeben. Lassen Sie uns zwei Beispiele nennen, die uns helfen zu verstehen, welche Schritte zu befolgen sind.



Beispiel 1: Arbeiten mit einer einzelnen Eingabe

Wenn Sie eine Funktion erstellen, die eine Tabelle zurückgibt, müssen Sie das Argument angeben, das mit der Rückgabeabfrage verwendet werden soll. Das Argument kann ein Muster oder eine bestimmte Eingabe sein. Dieses Beispiel zeigt einen Fall, in dem wir eine einzelne Eingabe als Argument verwenden.



Das Folgende ist die „Student“-Tabelle, die wir für unsere Abfrage verwenden werden:





Im folgenden Bild erstellen wir eine Funktion namens „get_student“, die einen INT als Argument verwendet. Im Abschnitt RETURNS TABLE geben wir eine Tabelle mit vier Spalten zurück: „student_id“, „student_name“, „student_faculty“ und „current_status“.



Alle diese Spalten erhalten ihre Werte aus der von uns definierten Rückgabeabfrage. Beachten Sie, dass die Rückgabeabfrage eine WHERE-Anweisung unter Verwendung der Parameterliste verwendet, die wir beim Erstellen der Funktion angeben.

Sobald Sie die Funktion erstellt haben, erhalten Sie eine ähnliche Ausgabe wie zuvor, die bestätigt, dass Ihre PostgreSQL-Funktion erfolgreich erstellt wurde. Um dies weiter zu überprüfen, führen Sie den folgenden Befehl aus, um die verfügbaren Funktionen aufzulisten:

\df *get_student();

Wir fügen die Sternchen hinzu, damit sie zu jeder Funktion passen, die den angegebenen Namen hat. Die Ausgabe zeigt, dass wir unsere PostgreSQL-Funktion in unserer Datenbank haben.

Der letzte Schritt besteht darin, die erstellte Funktion zu testen. Führen Sie die „select“-Anweisung aus, um die Funktion aufzurufen. Fügen Sie dann das erwartete Argument hinzu. In unserem Fall ist der Parameter vom Typ INT. Daher fügen wir 1 als Argument hinzu, um die entsprechenden Datensätze abzurufen und eine Tabelle zurückzugeben, wie im Folgenden gezeigt:

Beispiel 2: Arbeiten mit einem Eingabemuster

Wenn Sie sich nicht sicher sind, welcher Wert mit der Rückgabeabfrage verwendet werden soll, können Sie den ILIKE-Operator verwenden, um ein bestimmtes Muster abzugleichen. Wenn Sie beispielsweise einen Namen haben und nur einen Abschnitt der Zeichenfolge kennen, können Sie mit dem ILIKE-Operator das Symbol „%“ verwenden, um zu definieren, wie Ihr Muster aussehen soll.

Wir verwenden für diesen Fall die folgende Tabelle und zielen auf die Namensspalte ab:

Wir erstellen eine Funktion, die der zuvor erstellten ähnelt. Allerdings hat sich der Parametertyp geändert und die Rückgabeabfrage verwendet den ILIKE-Operator, der beim Aufruf der Funktion als Argument hinzugefügt wird.

Sobald die Funktion fertig ist, können wir sie aufrufen, um die Tabelle zurückzugeben. Es gibt verschiedene Möglichkeiten, dies zu tun. Wenn das Suchmuster beispielsweise „Jo“ in der Zeichenfolge enthält, führen wir die Befehlsabfrage wie folgt aus:

Wählen Sie * aus get_details(‘%Jo%’);

Wir gleichen alle Werte mit „Jo“ in ihrer Zeichenfolge ab und erhalten so zwei Datensätze.

Wenn wir nur den letzten Teil einer Zeichenfolge kennen, verdrehen wir die Abfrage und führen sie wie folgt aus:

Wählen Sie * aus get_details(‘%Tyson’);

Wenn wir schließlich den ersten Teil der Zeichenfolge kennen, fügen wir das „&“-Symbol nach dem Muster hinzu, wie im Folgenden gezeigt:

Wählen Sie * aus get_details(‘Tim%’);

Dies sind die verschiedenen Beispiele für die Verwendung der PostgreSQL-Funktion zur Rückgabe einer Tabelle.

Abschluss

PostgreSQL ist eine leistungsstarke Datenbank mit zahlreichen Funktionen. Wenn Sie Funktionen erstellen, können Sie diese aus verschiedenen Gründen so einstellen, dass sie eine Tabelle als Ergebnismenge zurückgeben, einschließlich der Erzielung einer Kapselung. In diesem Beitrag wurden zwei Beispiele für die Erstellung und Verwendung einer Funktion vorgestellt, die eine Tabelle in PostgreSQL zurückgibt.