PostgreSQL-i funktsioon tabeli tagastamiseks

Postgresql I Funktsioon Tabeli Tagastamiseks



Mõnikord võite soovida luua funktsiooni, mis tagastab teie PostgreSQL-i andmebaasis tabeli, et kapseldada tulemuskomplekt. Võimalik on luua pgSQL-funktsioon, mis võimaldab teil kirjeid tuua ja kasutab tagastuspäringut, mis kuvab tulemuste komplekti tabelina. See postitus juhendab teid tabeli tagastava PostgreSQL-i funktsiooni loomisel.

Kuidas luua tabeli tagastamiseks PostgreSQL-i funktsiooni

Kui teil on PostgreSQL-i andmebaas ja soovite tabelist kirjeid kontrollida, on funktsiooni perioodiline kasutamine kõige mugavam viis, eriti PostgreSQL-i funktsiooni puhul, mis tagastab tabeli oma tulemuskomplektis. Nii saate oma tulemuste komplekti kapseldada ja selle lähenemisviisi kasutamine aitab koodi paremini korraldada.

Järgmine on süntaks PostgreSQL-i funktsiooni loomiseks, mis tagastab tabeli:







FUNKTSIOONI LOO VÕI ASENDAMINE funktsiooni_nimi(parameetrite_loend)

TAGASTUSTABEL(veeru_loend)

AS $$

BEGIN RETURN QUERY(päring);

LÕPP;

$$ KEEL plpgsql

Selliste funktsioonide loomisel on hea see, et see võimaldab teil tabelist ühe väärtuse tagastamise asemel määrata erinevaid veergude_loendit. Toome kaks näidet, mis aitavad meil mõista, milliseid samme järgida.



Näide 1: Töötamine ühe sisendiga

Tabeli tagastava funktsiooni loomisel peate esitama argumendi, mida kasutada koos tagastamispäringuga. Argument võib olla muster või konkreetne sisend. See näide annab juhtumi, kus kasutame argumendina ühte sisendit.



Järgmine on 'õpilase' tabel, mida kasutame oma päringu jaoks:





Järgmisel pildil loome funktsiooni nimega 'get_student', mis võtab argumendiks INT. Jaotises TAGASTUSTABEL tagastame nelja veeruga tabeli: „student_id”, „student_name”, „student_faculty” ja „current_status”.



Kõik need veerud saavad oma väärtused meie määratletud tagastuspäringust. Pange tähele, et tagastuspäring kasutab WHERE-lauset, kasutades funktsiooni loomisel määratud parameetrite loendit.

Kui olete funktsiooni loonud, saate sarnase väljundiga, mis meil varem oli, mis kinnitab, et teie PostgreSQL-funktsioon loodi edukalt. Selle täiendavaks kontrollimiseks käivitage saadaolevate funktsioonide loetlemiseks järgmine käsk:

\df *get_student();

Lisame tärnid, et need vastaksid mis tahes funktsioonile, millel on määratud nimi. Väljund näitab, et meie andmebaasis on funktsioon PostgreSQL.

Viimane samm on loodud funktsiooni testimine. Funktsiooni kutsumiseks käivitage käsk 'select'. Seejärel lisage oodatud argument. Meie puhul on parameetri tüüp INT. Seega lisame oma argumendiks 1, et tuua välja sellele vastavad kirjed ja tagastada tabel, nagu on näidatud järgmises:

Näide 2: Sisendmustriga töötamine

Kui te pole kindel, millist väärtust tagastamispäringuga kasutada, saate antud mustri vastendamiseks kasutada operaatorit ILIKE. Näiteks kui teil on nimi ja teate ainult osa stringist, võimaldab operaator ILIKE teil kasutada sümbolit '%', et määrata, kuidas teie muster on.

Kasutame sel juhul järgmist tabelit ja sihime veergu nime:

Loome funktsiooni, mis sarnaneb sellega, mida tegime varem. Parameetri tüüp on aga muutunud ja tagastuspäring kasutab ILIKE operaatorit, mis lisatakse funktsiooni kutsumisel argumendina.

Kui funktsioon on valmis, saame selle tabeli tagastamiseks välja kutsuda. Selleks on erinevaid viise. Näiteks kui otsingumuster sisaldab stringis 'Jo', täidame käsupäringu järgmiselt:

Valige * get_details('%Jo%');

Me sobitame kõik väärtused nende stringis 'Jo', mis annab meile kaks plaati.

Kui teame ainult stringi viimast osa, keerame päringu ja käivitame selle järgmiselt:

Valige * get_details('%Tyson');

Lõpuks, kui teame stringi esimest osa, lisame mustri järele sümboli '&', nagu on näidatud järgmiselt:

Valige * get_details('Tim%');

Need on erinevad näited selle kohta, kuidas kasutada tabeli tagastamiseks funktsiooni PostgreSQL.

Järeldus

PostgreSQL on võimas andmebaas, millel on palju funktsioone. Funktsioonide loomisel saate määrata need erinevatel põhjustel, sealhulgas kapseldamise saavutamiseks, tagastama tabeli tulemusekomplektina. Selles postituses esitati kaks näidet PostgreSQL-is tabeli tagastava funktsiooni loomise ja kasutamise kohta.