Funció PostgreSQL per retornar una taula

Funcio Postgresql Per Retornar Una Taula



De vegades, és possible que vulgueu crear una funció que retorni una taula a la vostra base de dades PostgreSQL per encapsular el conjunt de resultats. És possible crear una funció 'pgSQL' que us permeti recuperar els registres i utilitzar una consulta de retorn que mostra el conjunt de resultats com a taula. Aquesta publicació us guiarà per crear una funció PostgreSQL que retorni una taula.

Com crear una funció PostgreSQL per retornar una taula

Quan teniu una base de dades PostgreSQL i voleu comprovar els registres de la taula, utilitzar una funció periòdicament és la manera més convenient, especialment una funció PostgreSQL que retorna una taula en el seu conjunt de resultats. D'aquesta manera, encapsulareu el vostre conjunt de resultats i utilitzar aquest enfocament ajuda a una millor organització del codi.

La següent és la sintaxi per crear una funció PostgreSQL que retorna una taula:







CREAR O SUBSTITUIR LA FUNCIÓ nom_funció(llista_paràmetres)

RETORN LA TAULA(llista_columnes)

COM $$

COMENÇA RETORN QUERY(consulta);

FINAL;

$$ IDIOMA plpgsql

El millor de crear aquestes funcions és que us permet especificar diverses 'column_list' en lloc de retornar un sol valor de la vostra taula. Posem dos exemples que ens ajudin a entendre quins passos hem de seguir.



Exemple 1: treballant amb una única entrada

Quan creeu una funció que retorni una taula, heu de proporcionar l'argument per utilitzar amb la consulta de retorn. L'argument pot ser un patró o una entrada específica. Aquest exemple dóna un cas en què fem servir una única entrada com a argument.



La següent és la taula 'estudiant' que utilitzarem per a la nostra consulta:





A la imatge següent, creem una funció anomenada 'get_student' que pren un INT com a argument. A la secció TAULA DE DEVOLUCIONS, tornem una taula amb quatre columnes: 'student_id', 'student_name', 'student_faculty' i 'actual_status'.



Totes aquestes columnes obtenen els seus valors de la consulta de retorn que definim. Observeu que la consulta de retorn utilitza una instrucció WHERE utilitzant la llista de paràmetres que especifiquem en crear la funció.

Un cop creeu la funció, obtindreu una sortida similar a la que teníem anteriorment que confirma que la vostra funció PostgreSQL s'ha creat correctament. Per verificar-ho encara més, executeu l'ordre següent per llistar les funcions disponibles:

\df *get_student();

Afegim els asteriscs perquè coincideixin amb qualsevol funció que tingui el nom especificat. La sortida mostra que tenim la nostra funció PostgreSQL a la nostra base de dades.

L'últim pas és provar la funció creada. Executeu la instrucció 'select' per cridar la funció. A continuació, afegiu l'argument esperat. Per al nostre cas, el paràmetre és de tipus INT. Per tant, afegim 1 com a argument per recuperar els registres que hi coincideixen i retornar una taula tal com es mostra a continuació:

Exemple 2: treballant amb un patró d'entrada

Quan no esteu segur del valor que cal utilitzar amb la consulta de retorn, podeu utilitzar l'operador ILIKE per fer coincidir un patró determinat. Per exemple, si teniu un nom i només coneixeu una secció de la cadena, l'operador ILIKE us permetrà utilitzar el símbol '%' per definir com serà el vostre patró.

Utilitzem la taula següent per a aquest cas i orientem la columna de nom:

Creem una funció semblant a la que vam fer abans. Tanmateix, el tipus de paràmetre ha canviat i la consulta de retorn utilitza l'operador ILIKE que s'afegeix com a argument en cridar la funció.

Un cop la funció estigui preparada, podem cridar-la per tornar la taula. Hi ha diferents maneres de fer-ho. Per exemple, si el patró de cerca conté 'Jo' a la cadena, executem la consulta d'ordres de la següent manera:

Seleccioneu * de get_details('%Jo%');

Fem coincidir tots els valors amb 'Jo' a la seva cadena, donant-nos dos registres.

Si només coneixem l'última part d'una cadena, girem la consulta i l'executem de la següent manera:

Seleccioneu * de get_details('%Tyson');

Finalment, si coneixem la primera part de la cadena, afegim el símbol “&” després del patró tal com es mostra a continuació:

Seleccioneu * de get_details('Tim%');

Aquests són els diferents exemples sobre com utilitzar la funció PostgreSQL per retornar una taula.

Conclusió

PostgreSQL és una base de dades potent amb nombroses característiques. Quan creeu funcions, podeu configurar-les perquè retornin una taula com a conjunt de resultats per diferents motius, com ara aconseguir l'encapsulació. Aquesta publicació presenta dos exemples de creació i ús d'una funció que retorna una taula a PostgreSQL.