PostgreSQL-funksjon for å returnere en tabell

Postgresql Funksjon For A Returnere En Tabell



Noen ganger kan det være lurt å lage en funksjon som returnerer en tabell i PostgreSQL-databasen for å kapsle inn resultatsettet. Det er mulig å lage en 'pgSQL'-funksjon som lar deg hente postene og bruke en returspørring som viser resultatsettet som en tabell. Dette innlegget veileder deg til å lage en PostgreSQL-funksjon som returnerer en tabell.

Hvordan lage en PostgreSQL-funksjon for å returnere en tabell

Når du har en PostgreSQL-database og du vil sjekke poster fra tabellen, er det å bruke en funksjon med jevne mellomrom den mest praktiske måten, spesielt en PostgreSQL-funksjon som returnerer en tabell i resultatsettet. På denne måten kapsler du inn resultatsettet ditt, og bruk av denne tilnærmingen hjelper med en bedre kodeorganisering.

Følgende er syntaksen for å lage en PostgreSQL-funksjon som returnerer en tabell:







LAG ELLER ERSTATT FUNKSJON funksjonsnavn (parameterliste)

RETURTABEL(column_list)

SOM $$

BEGIN RETURN QUERY(query);

SLUTT;

$$ SPRÅK plpgsql

Det som er bra med å lage slike funksjoner er at det lar deg spesifisere forskjellige 'column_list' i stedet for å returnere en enkelt verdi fra tabellen. La oss ha to eksempler for å hjelpe oss å forstå hvilke trinn vi skal følge.



Eksempel 1: Arbeid med en enkelt inngang

Når du oppretter en funksjon som returnerer en tabell, må du oppgi argumentet som skal brukes med returspørringen. Argumentet kan være et mønster eller en spesifikk inngang. Dette eksemplet gir et tilfelle der vi bruker en enkelt inngang som argument.



Følgende er 'student'-tabellen som vi vil bruke for spørringen vår:





I det følgende bildet lager vi en funksjon kalt 'get_student' som tar en INT som argument. I RETURTABEL-delen returnerer vi en tabell med fire kolonner: «student_id», «student_name», «student_faculty» og «current_status».



Alle disse kolonnene får verdiene sine fra returspørringen som vi definerer. Legg merke til at returspørringen bruker en WHERE-setning ved å bruke parameterlisten som vi spesifiserer når vi oppretter funksjonen.

Når du har opprettet funksjonen, vil du få en lignende utgang som den vi tidligere hadde, som bekrefter at PostgreSQL-funksjonen ble opprettet. For å bekrefte dette ytterligere, kjør følgende kommando for å liste de tilgjengelige funksjonene:

\df *get_student();

Vi legger til stjernene for å matche enhver funksjon som har det angitte navnet. Utdataene viser at vi har vår PostgreSQL-funksjon i databasen vår.

Det siste trinnet er å teste den opprettede funksjonen. Kjør 'select'-setningen for å kalle opp funksjonen. Legg deretter til det forventede argumentet. For vårt tilfelle er parameteren av typen INT. Derfor legger vi til 1 som vårt argument for å hente postene som samsvarer med den og returnere en tabell som vist i følgende:

Eksempel 2: Arbeide med et inngangsmønster

Når du er usikker på verdien du skal bruke med returspørringen, kan du bruke ILIKE-operatoren for å matche et gitt mønster. For eksempel, hvis du har et navn og bare kjenner en del av strengen, lar ILIKE-operatoren deg bruke '%'-symbolet for å definere hvordan mønsteret ditt skal være.

Vi bruker følgende tabell for dette tilfellet og målretter navnekolonnen:

Vi lager en funksjon som ligner på den vi gjorde tidligere. Imidlertid har parametertypen endret seg og returspørringen bruker ILIKE-operatoren som legges til som et argument når funksjonen kalles.

Når funksjonen er klar, kan vi kalle den for å returnere tabellen. Det er forskjellige måter å gå frem på. For eksempel, hvis søkemønsteret inneholder 'Jo' i strengen, utfører vi kommandospørringen som følger:

Velg * fra get_details(‘%Jo%’);

Vi matcher alle verdier med 'Jo' i strengen, og gir oss to poster.

Hvis vi bare kjenner den siste delen av en streng, vrir vi spørringen og kjører den som følger:

Velg * fra get_details(‘%Tyson’);

Til slutt, hvis vi kjenner den første delen av strengen, legger vi til '&'-symbolet etter mønsteret som vist i følgende:

Velg * fra get_details('Tim%');

Dette er de forskjellige eksemplene på hvordan du bruker PostgreSQL-funksjonen for å returnere en tabell.

Konklusjon

PostgreSQL er en kraftig database med mange funksjoner. Når du oppretter funksjoner, kan du sette dem til å returnere en tabell som resultatsettet av forskjellige grunner, inkludert oppnåelse av innkapsling. Dette innlegget presenterte to eksempler på å lage og bruke en funksjon som returnerer en tabell i PostgreSQL.