Funkce PostgreSQL pro vrácení tabulky

Funkce Postgresql Pro Vraceni Tabulky



Někdy můžete chtít vytvořit funkci, která vrátí tabulku ve vaší databázi PostgreSQL, aby zapouzdřila sadu výsledků. Je možné vytvořit funkci „pgSQL“, která vám umožní načíst záznamy a použije návratový dotaz, který zobrazí sadu výsledků jako tabulku. Tento příspěvek vás provede vytvořením funkce PostgreSQL, která vrací tabulku.

Jak vytvořit funkci PostgreSQL pro vrácení tabulky

Pokud máte databázi PostgreSQL a chcete kontrolovat záznamy z tabulky, je nejpohodlnější používat funkci periodicky, zejména funkce PostgreSQL, která vrací tabulku ve své výsledkové sadě. Tímto způsobem zapouzdříte svou sadu výsledků a použití tohoto přístupu pomáhá s lepší organizací kódu.

Následuje syntaxe pro vytvoření funkce PostgreSQL, která vrací tabulku:







VYTVOŘIT NEBO NAHRADIT FUNKCI název_funkce (seznam_parametrů)

TABULKA VRÁCENÍ (seznam_sloupců)

JAKO $$

BEGIN RETURN QUERY(dotaz);

KONEC;

$$ LANGUAGE plpgsql

Dobrá věc na vytváření takových funkcí je, že vám umožňují zadat různé „seznam_sloupců“ namísto vracení jedné hodnoty z vaší tabulky. Uveďme dva příklady, které nám pomohou pochopit, jaké kroky máme následovat.



Příklad 1: Práce s jedním vstupem

Při vytváření funkce, která vrací tabulku, musíte zadat argument, který se má použít s návratovým dotazem. Argumentem může být vzor nebo konkrétní vstup. Tento příklad ukazuje případ, kdy jako argument použijeme jeden vstup.



Následuje tabulka „student“, kterou použijeme pro náš dotaz:





Na následujícím obrázku vytvoříme funkci s názvem „get_student“, která má jako argument INT. V sekci RETURNS TABLE vrátíme tabulku se čtyřmi sloupci: „student_id“, „student_name“, „student_faculty“ a „aktuální_stav“.



Všechny tyto sloupce získávají své hodnoty z návratového dotazu, který definujeme. Všimněte si, že návratový dotaz používá příkaz WHERE pomocí seznamu parametrů, který zadáváme při vytváření funkce.

Jakmile funkci vytvoříte, získáte výstup podobný tomu, který jsme měli dříve, což potvrzuje, že vaše funkce PostgreSQL byla úspěšně vytvořena. Chcete-li to dále ověřit, spusťte následující příkaz a vypište dostupné funkce:

\df *get_student();

Přidáme hvězdičky, aby odpovídaly jakékoli funkci, která má zadaný název. Výstup ukazuje, že v naší databázi máme funkci PostgreSQL.

Posledním krokem je otestování vytvořené funkce. Spusťte příkaz „select“ pro volání funkce. Poté přidejte očekávaný argument. V našem případě je parametr typu INT. Proto přidáme 1 jako náš argument, abychom získali záznamy, které mu odpovídají, a vrátíme tabulku, jak je ukázáno v následujícím:

Příklad 2: Práce se vstupním vzorem

Pokud si nejste jisti hodnotou, která se má použít s návratovým dotazem, můžete použít operátor ILIKE ke shodě s daným vzorem. Například, pokud máte jméno a znáte pouze část řetězce, operátor ILIKE vám umožní použít symbol „%“ k definování toho, jak bude váš vzor vypadat.

Pro tento případ použijeme následující tabulku a cílíme na sloupec názvu:

Vytvoříme funkci, která je podobná té, kterou jsme vytvořili dříve. Typ parametru se však změnil a návratový dotaz používá operátor ILIKE, který je přidán jako argument při volání funkce.

Jakmile je funkce připravena, můžeme ji zavolat a vrátit tabulku. Existují různé způsoby, jak toho dosáhnout. Pokud například vyhledávací vzor obsahuje v řetězci „Jo“, provedeme příkazový dotaz následovně:

Vyberte * z get_details(‘%Jo%’);

Všechny hodnoty porovnáme s „Jo“ v jejich řetězci, čímž získáme dva záznamy.

Pokud známe pouze poslední část řetězce, zkroutíme dotaz a spustíme jej následovně:

Vyberte * z get_details(‘%Tyson’);

Nakonec, pokud známe první část řetězce, přidáme za vzor symbol „&“, jak je znázorněno v následujícím:

Vyberte * z get_details(‘Tim%’);

To jsou různé příklady toho, jak použít funkci PostgreSQL k vrácení tabulky.

Závěr

PostgreSQL je výkonná databáze s mnoha funkcemi. Při vytváření funkcí je můžete nastavit tak, aby vracely tabulku jako sadu výsledků z různých důvodů, včetně dosažení zapouzdření. Tento příspěvek představil dva příklady vytvoření a použití funkce, která vrací tabulku v PostgreSQL.