Funcția PostgreSQL pentru a returna un tabel

Functia Postgresql Pentru A Returna Un Tabel



Uneori, poate doriți să creați o funcție care returnează un tabel în baza de date PostgreSQL pentru a încapsula setul de rezultate. Crearea unei funcții „pgSQL” care vă permite să preluați înregistrările și să folosească o interogare de returnare care afișează setul de rezultate ca tabel. Această postare vă ghidează în crearea unei funcții PostgreSQL care returnează un tabel.

Cum se creează o funcție PostgreSQL pentru a returna un tabel

Când aveți o bază de date PostgreSQL și doriți să verificați înregistrările din tabel, utilizarea periodică a unei funcții este cea mai convenabilă modalitate, în special o funcție PostgreSQL care returnează un tabel în setul de rezultate. În acest fel, vă încapsulați setul de rezultate, iar utilizarea acestei abordări ajută la o organizare mai bună a codului.

Următoarea este sintaxa pentru a crea o funcție PostgreSQL care returnează un tabel:







CREATE OR REPLACE FUNCTION function_name(lista_parametri)

RETURNS TABLE(listă_coloană)

CA $$

BEGIN RETURN QUERY(interogare);

SFÂRŞIT;

$$ LIMBA plpgsql

Lucrul bun despre crearea unor astfel de funcții este că vă permite să specificați diverse „listă_coloană” în loc să returnați o singură valoare din tabelul dumneavoastră. Să avem două exemple care să ne ajute să înțelegem ce pași trebuie urmați.



Exemplul 1: Lucrul cu o singură intrare

Când creați o funcție care returnează un tabel, trebuie să furnizați argumentul de utilizat cu interogarea de returnare. Argumentul poate fi un model sau o intrare specifică. Acest exemplu oferă un caz în care folosim o singură intrare ca argument.



Următorul este tabelul „student” pe care îl vom folosi pentru interogarea noastră:





În imaginea următoare, creăm o funcție numită „get_student” care ia un INT ca argument. În secțiunea RETURNS TABLE, returnăm un tabel cu patru coloane: „student_id”, „student_name”, „student_faculty” și „current_status”.



Toate aceste coloane își primesc valorile din interogarea de returnare pe care o definim. Observați că interogarea returnată folosește o instrucțiune WHERE folosind lista de parametri pe care o specificăm la crearea funcției.

Odată ce creați funcția, veți obține o ieșire similară cu cea pe care am avut-o anterior, care confirmă că funcția dvs. PostgreSQL a fost creată cu succes. Pentru a verifica acest lucru în continuare, rulați următoarea comandă pentru a lista funcțiile disponibile:

\df *get_student();

Adăugăm asteriscurile pentru a se potrivi cu orice funcție care are numele specificat. Rezultatul arată că avem funcția noastră PostgreSQL în baza noastră de date.

Ultimul pas este testarea funcției create. Rulați instrucțiunea „select” pentru a apela funcția. Apoi, adăugați argumentul așteptat. Pentru cazul nostru, parametrul este de tip INT. Astfel, adăugăm 1 ca argument pentru a prelua înregistrările care se potrivesc și a returna un tabel, așa cum se demonstrează în continuare:

Exemplul 2: Lucrul cu un model de intrare

Când nu sunteți sigur de valoarea de utilizat cu interogarea de returnare, puteți utiliza operatorul ILIKE pentru a potrivi un model dat. De exemplu, dacă aveți un nume și cunoașteți doar o secțiune a șirului, operatorul ILIKE vă permite să utilizați simbolul „%” pentru a defini cum va fi modelul dvs.

Folosim următorul tabel pentru acest caz și vizam coloana cu nume:

Creăm o funcție care este similară cu cea pe care am făcut-o mai devreme. Cu toate acestea, tipul de parametru s-a schimbat și interogarea de returnare folosește operatorul ILIKE care este adăugat ca argument la apelarea funcției.

Odată ce funcția este gata, o putem apela pentru a returna tabelul. Există diferite moduri de a face acest lucru. De exemplu, dacă modelul de căutare conține „Jo” în șir, executăm interogarea de comandă după cum urmează:

Selectați * din get_details(‘%Jo%’);

Potrivim toate valorile cu „Jo” în șirul lor, dându-ne două înregistrări.

Dacă știm doar ultima parte a unui șir, răsucim interogarea și o rulăm după cum urmează:

Selectați * din get_details(‘%Tyson’);

În cele din urmă, dacă cunoaștem prima parte a șirului, adăugăm simbolul „&” după model, așa cum se arată în continuare:

Selectați * din get_details(‘Tim%’);

Acestea sunt exemplele diferite despre cum să utilizați funcția PostgreSQL pentru a returna un tabel.

Concluzie

PostgreSQL este o bază de date puternică, cu numeroase caracteristici. Când creați funcții, le puteți seta să returneze un tabel ca set de rezultate din diferite motive, inclusiv realizarea încapsulării. Această postare a prezentat două exemple de creare și utilizare a unei funcții care returnează un tabel în PostgreSQL.