PostgreSQL funkcija za vraćanje tablice

Postgresql Funkcija Za Vracanje Tablice



Ponekad ćete možda htjeti stvoriti funkciju koja vraća tablicu u vašoj PostgreSQL bazi podataka kako biste enkapsulirali skup rezultata. Moguće je stvaranje funkcije 'pgSQL' koja vam omogućuje dohvaćanje zapisa i koristi povratni upit koji prikazuje skup rezultata kao tablicu. Ovaj post vas vodi u stvaranju PostgreSQL funkcije koja vraća tablicu.

Kako stvoriti PostgreSQL funkciju za vraćanje tablice

Kada imate PostgreSQL bazu podataka i želite provjeriti zapise iz tablice, povremeno korištenje funkcije je najprikladniji način, posebno PostgreSQL funkcije koja vraća tablicu u svom skupu rezultata. Na ovaj način kapsulirate svoj skup rezultata, a korištenje ovog pristupa pomaže u boljoj organizaciji koda.

Slijedi sintaksa za stvaranje PostgreSQL funkcije koja vraća tablicu:







CREATE OR REPLACE FUNCTION naziv_funkcije(popis_parametara)

RETURNS TABLE (column_list)

KAO $$

BEGIN RETURN QUERY(upit);

KRAJ;

$$ JEZIK plpgsql

Dobra stvar kod stvaranja takvih funkcija je ta što vam omogućuje da navedete razne 'column_list' umjesto vraćanja jedne vrijednosti iz vaše tablice. Uzmimo dva primjera koji će nam pomoći da shvatimo koje korake trebamo slijediti.



Primjer 1: Rad s jednim unosom

Kada stvarate funkciju koja vraća tablicu, morate unijeti argument za korištenje s povratnim upitom. Argument može biti uzorak ili određeni unos. Ovaj primjer daje slučaj u kojem koristimo jedan unos kao argument.



Slijedi tablica 'student' koju ćemo koristiti za naš upit:





Na sljedećoj slici stvaramo funkciju pod nazivom 'get_student' koja uzima INT kao argument. U odjeljku RETURNS TABLE vraćamo tablicu s četiri stupca: “student_id”, “student_name”, “student_faculty” i “current_status”.



Svi ovi stupci dobivaju svoje vrijednosti iz povratnog upita koji definiramo. Primijetite da povratni upit koristi naredbu WHERE koristeći popis parametara koji navedemo prilikom stvaranja funkcije.

Nakon što stvorite funkciju, dobit ćete izlaz sličan onom koji smo prethodno imali, što potvrđuje da je vaša PostgreSQL funkcija uspješno kreirana. Da biste to dodatno provjerili, pokrenite sljedeću naredbu za popis dostupnih funkcija:

\df *get_student();

Zvjezdice dodajemo kako bismo odgovarali bilo kojoj funkciji koja ima navedeni naziv. Izlaz pokazuje da imamo našu PostgreSQL funkciju u našoj bazi podataka.

Zadnji korak je testiranje stvorene funkcije. Pokrenite naredbu “select” za poziv funkcije. Zatim dodajte očekivani argument. Za naš slučaj, parametar je tipa INT. Stoga dodajemo 1 kao naš argument za dohvaćanje zapisa koji mu odgovaraju i vraćamo tablicu kao što je prikazano u sljedećem:

Primjer 2: Rad s uzorkom unosa

Ako niste sigurni koju vrijednost koristiti s povratnim upitom, možete upotrijebiti operator ILIKE za podudaranje s danim uzorkom. Na primjer, ako imate ime i znate samo dio niza, operator ILIKE omogućuje vam korištenje simbola “%” da definirate kakav će biti vaš uzorak.

Koristimo sljedeću tablicu za ovaj slučaj i ciljamo stupac imena:

Stvaramo funkciju sličnu onoj koju smo napravili ranije. Međutim, tip parametra je promijenjen i povratni upit koristi operator ILIKE koji se dodaje kao argument prilikom pozivanja funkcije.

Nakon što je funkcija spremna, možemo je pozvati da vrati tablicu. Postoje različiti načini za to. Na primjer, ako uzorak pretraživanja sadrži 'Jo' u nizu, izvršavamo naredbeni upit na sljedeći način:

Odaberite * iz get_details(‘%Jo%’);

Spajamo sve vrijednosti s 'Jo' u njihovom nizu, što nam daje dva zapisa.

Ako znamo samo zadnji dio niza, izvrćemo upit i pokrećemo ga na sljedeći način:

Odaberite * iz get_details(‘%Tyson’);

Na kraju, ako znamo prvi dio niza, dodajemo simbol '&' nakon uzorka kao što je prikazano u nastavku:

Odaberite * iz get_details(‘Tim%’);

To su različiti primjeri kako koristiti PostgreSQL funkciju za vraćanje tablice.

Zaključak

PostgreSQL je moćna baza podataka s brojnim značajkama. Kada stvarate funkcije, možete ih postaviti da vraćaju tablicu kao skup rezultata iz različitih razloga, uključujući postizanje enkapsulacije. Ovaj post predstavlja dva primjera stvaranja i korištenja funkcije koja vraća tablicu u PostgreSQL-u.