PostgreSQL-functie om een ​​tabel te retourneren

Postgresql Functie Om Een Tabel Te Retourneren



Soms wilt u misschien een functie maken die een tabel in uw PostgreSQL-database retourneert om de resultatenset in te kapselen. Het is mogelijk om een ​​“pgSQL”-functie te maken waarmee u de records kunt ophalen en een retourquery gebruikt die de resultatenset als een tabel weergeeft. Dit bericht begeleidt u bij het maken van een PostgreSQL-functie die een tabel retourneert.

Hoe u een PostgreSQL-functie maakt om een ​​tabel te retourneren

Als u een PostgreSQL-database heeft en records uit de tabel wilt controleren, is het periodiek gebruiken van een functie de handigste manier, vooral een PostgreSQL-functie die een tabel retourneert in de resultatenset. Op deze manier kapselt u uw resultatenset in, en het gebruik van deze aanpak helpt bij een betere code-organisatie.

Hieronder volgt de syntaxis voor het maken van een PostgreSQL-functie die een tabel retourneert:







MAAK OF VERVANG FUNCTIE functienaam (parameterlijst)

RETOURTABEL(kolom_lijst)

ALS $$

BEGIN RETOUR QUERY(query);

EINDE;

$$ TAAL plpgsql

Het goede aan het maken van dergelijke functies is dat je hiermee verschillende “column_list” kunt opgeven in plaats van één enkele waarde uit je tabel terug te geven. Laten we twee voorbeelden hebben om ons te helpen begrijpen welke stappen we moeten volgen.



Voorbeeld 1: Werken met één enkele ingang

Wanneer u een functie maakt die een tabel retourneert, moet u het argument opgeven dat u bij de retourquery wilt gebruiken. Het argument kan een patroon of een specifieke invoer zijn. Dit voorbeeld geeft een geval waarin we één enkele invoer als argument gebruiken.



Het volgende is de “student”-tabel die we zullen gebruiken voor onze zoekopdracht:





In de volgende afbeelding maken we een functie met de naam “get_student” die een INT als argument gebruikt. In de sectie RETURNS TABLE retourneren we een tabel met vier kolommen: de “student_id”, “student_name”, “student_faculty” en “current_status”.



Al deze kolommen krijgen hun waarden uit de retourquery die we definiëren. Merk op dat de retourquery een WHERE-instructie gebruikt met behulp van de parameterlijst die we opgeven bij het maken van de functie.

Zodra u de functie heeft gemaakt, krijgt u een soortgelijke uitvoer als die we eerder hadden, wat bevestigt dat uw PostgreSQL-functie met succes is gemaakt. Om dit verder te verifiëren, voert u de volgende opdracht uit om de beschikbare functies weer te geven:

\df *get_student();

We voegen de sterretjes toe om overeen te komen met elke functie die de opgegeven naam heeft. De uitvoer laat zien dat we onze PostgreSQL-functie in onze database hebben.

De laatste stap is het testen van de gemaakte functie. Voer de instructie 'select' uit om de functie aan te roepen. Voeg vervolgens het verwachte argument toe. In ons geval is de parameter van het type INT. We voegen dus 1 toe als ons argument om de records op te halen die ermee overeenkomen en een tabel terug te geven, zoals hieronder wordt gedemonstreerd:

Voorbeeld 2: Werken met een invoerpatroon

Als u niet zeker weet welke waarde u moet gebruiken bij de retourquery, kunt u de ILIKE-operator gebruiken om een ​​bepaald patroon te matchen. Als u bijvoorbeeld een naam heeft en slechts een gedeelte van de string kent, kunt u met de ILIKE-operator het symbool “%” gebruiken om te definiëren hoe uw patroon eruit zal zien.

We gebruiken voor dit geval de volgende tabel en richten ons op de naamkolom:

We maken een functie die vergelijkbaar is met degene die we eerder hebben gedaan. Het parametertype is echter gewijzigd en de retourquery gebruikt de ILIKE-operator die als argument wordt toegevoegd bij het aanroepen van de functie.

Zodra de functie gereed is, kunnen we deze oproepen om de tafel terug te brengen. Er zijn verschillende manieren om dit aan te pakken. Als het zoekpatroon bijvoorbeeld “Jo” in de string bevat, voeren we de opdrachtquery als volgt uit:

Selecteer * uit get_details(‘%Jo%’);

We matchen alle waarden met “Jo” in hun string, waardoor we twee records krijgen.

Als we alleen het laatste deel van een string kennen, verdraaien we de query en voeren deze als volgt uit:

Selecteer * uit get_details(‘%Tyson’);

Als we ten slotte het eerste deel van de string kennen, voegen we het “&”-symbool toe na het patroon, zoals hieronder weergegeven:

Selecteer * uit get_details(‘Tim%’);

Dit zijn de verschillende voorbeelden van hoe u de PostgreSQL-functie kunt gebruiken om een ​​tabel te retourneren.

Conclusie

PostgreSQL is een krachtige database met talloze functies. Bij het maken van functies kunt u deze om verschillende redenen zo instellen dat ze een tabel als resultatenset retourneren, waaronder het bereiken van inkapseling. Dit bericht presenteerde twee voorbeelden van het maken en gebruiken van een functie die een tabel retourneert in PostgreSQL.