PostgreSQL-funktion til at returnere en tabel

Postgresql Funktion Til At Returnere En Tabel



Nogle gange vil du måske oprette en funktion, der returnerer en tabel i din PostgreSQL-database for at indkapsle resultatsættet. Det er muligt at oprette en 'pgSQL'-funktion, der lader dig hente posterne og bruge en returforespørgsel, der viser resultatsættet som en tabel. Dette indlæg guider dig til at oprette en PostgreSQL-funktion, der returnerer en tabel.

Sådan opretter du en PostgreSQL-funktion for at returnere en tabel

Når du har en PostgreSQL-database, og du ønsker at kontrollere poster fra tabellen, er det at bruge en funktion periodisk den mest bekvemme måde, især en PostgreSQL-funktion, der returnerer en tabel i dens resultatsæt. På denne måde indkapsler du dit resultatsæt, og brug af denne tilgang hjælper med en bedre kodeorganisering.

Følgende er syntaksen til at oprette en PostgreSQL-funktion, der returnerer en tabel:







OPRET ELLER ERSTAT FUNKTION funktionsnavn(parameterliste)

RETURTABEL(kolonne_liste)

SOM $$

BEGIN RETURN QUERY(forespørgsel);

ENDE;

$$ SPROG plpgsql

Det gode ved at oprette sådanne funktioner er, at det giver dig mulighed for at angive forskellige 'column_list' i stedet for at returnere en enkelt værdi fra din tabel. Lad os have to eksempler for at hjælpe os med at forstå, hvilke trin vi skal følge.



Eksempel 1: Arbejde med en enkelt indgang

Når du opretter en funktion, der returnerer en tabel, skal du angive det argument, der skal bruges sammen med returforespørgslen. Argumentet kan være et mønster eller et specifikt input. Dette eksempel giver et tilfælde, hvor vi bruger et enkelt input som argument.



Følgende er 'studerende'-tabellen, som vi vil bruge til vores forespørgsel:





I det følgende billede opretter vi en funktion ved navn 'get_student', der tager en INT som argument. I sektionen RETURTABEL returnerer vi en tabel med fire kolonner: 'student_id', 'student_name', 'student_faculty' og 'current_status'.



Alle disse kolonner får deres værdier fra den returforespørgsel, som vi definerer. Bemærk, at returforespørgslen bruger en WHERE-sætning ved hjælp af parameterlisten, som vi angiver, når vi opretter funktionen.

Når du har oprettet funktionen, vil du få et lignende output som det, vi tidligere havde, hvilket bekræfter, at din PostgreSQL-funktion blev oprettet med succes. For at bekræfte dette yderligere skal du køre følgende kommando for at vise de tilgængelige funktioner:

\df *get_student();

Vi tilføjer stjernerne for at matche enhver funktion, der har det angivne navn. Outputtet viser, at vi har vores PostgreSQL-funktion i vores database.

Det sidste trin er at teste den oprettede funktion. Kør 'select'-sætningen for at kalde funktionen. Tilføj derefter det forventede argument. For vores tilfælde er parameteren af ​​typen INT. Derfor tilføjer vi 1 som vores argument for at hente de poster, der matcher det, og returnere en tabel som vist i følgende:

Eksempel 2: Arbejde med et inputmønster

Når du er usikker på den værdi, der skal bruges med returforespørgslen, kan du bruge ILIKE-operatoren til at matche et givet mønster. For eksempel, hvis du har et navn og kun kender en sektion af strengen, lader ILIKE-operatoren dig bruge '%'-symbolet til at definere, hvordan dit mønster vil være.

Vi bruger følgende tabel til dette tilfælde og målretter mod navnekolonnen:

Vi opretter en funktion, der ligner den, vi gjorde tidligere. Men parametertypen er ændret, og returforespørgslen bruger ILIKE-operatoren, som tilføjes som et argument, når funktionen kaldes.

Når funktionen er klar, kan vi kalde den for at returnere tabellen. Der er forskellige måder at gøre det på. For eksempel, hvis søgemønsteret indeholder 'Jo' i strengen, udfører vi kommandoforespørgslen som følger:

Vælg * fra get_details(‘%Jo%’);

Vi matcher alle værdier med 'Jo' i deres streng, hvilket giver os to poster.

Hvis vi kun kender den sidste del af en streng, vrider vi forespørgslen og kører den som følger:

Vælg * fra get_details(‘%Tyson’);

Til sidst, hvis vi kender den første del af strengen, tilføjer vi '&'-symbolet efter mønsteret som vist i følgende:

Vælg * fra get_details('Tim%');

Det er de forskellige eksempler på, hvordan man bruger PostgreSQL-funktionen til at returnere en tabel.

Konklusion

PostgreSQL er en kraftfuld database med mange funktioner. Når du opretter funktioner, kan du indstille dem til at returnere en tabel som resultatsættet af forskellige årsager, herunder opnåelse af indkapsling. Dette indlæg præsenterede to eksempler på oprettelse og brug af en funktion, der returnerer en tabel i PostgreSQL.