Rozdział 14: Podstawy własnych funkcji

MySQL (oraz nie tylko on) umożliwia tworzenie własnych funkcji.

Niniejszy wpis wyjaśni podstawy wykonania pierwszej funkcji oraz wskaże sposób na jej późniejsze wykorzystanie.

Sprawdźmy wpierw, czy w naszej bazie danych istnieją już jakieś funkcje które nie są wbudowanymi funkcjami w silniku bazy danych.
Do powyższego zadania posłuży nam polecenie:

show function status;

W moim przypadku tabelka jest pusta:

DbNameTypeDefinerModifiedCreated

Stworzenie nowej funkcji

Stwórzmy więc pierwszą, niezwykle prostą funkcję, wykorzystajmy w tym celu poniższy wzór:

CREATE FUNCTION {nazwa}()
RETURNS {typ}
RETURN {wartosc}

Na początek deklarujemy stworzenie funkcji oraz jej nazwy. Możemy również w nawiasach zadeklarować ewentualne argumenty oraz ich typ.
Następnie deklarujemy typ zwracany przez funkcję.
Ostatnia linia to zwrócona konkretna wartość.

Przejdźmy w takim razie do przykładu:

CREATE FUNCTION suma (x int, y int)
RETURNS int
RETURN x + y;

Tworzymy zatem funkcję o nazwie „suma” która przyjmuje dwa parametry, oba w formacie „int„. Stworzona przez nas funkcja zwróci oczywiście również „int” będący sumą obu parametrów.

W praktyce, nie ma sensu tworzenia powyższej funkcji, służy ona jedynie w celach poglądowych.

Sprawdźmy czy na liście mamy naszą stworzoną funkcję:

show function status;
DbNameTypeDefinerModifiedCreated
ifcodesumaFUNCTIONradian@localhost2020-11-14 10:52:012020-11-14 10:52:01

Wykorzystanie własnych funkcji

Postarajmy się teraz naszą funkcję użyć w praktyce.

Stwórzmy w tym celu zapytanie SQL:

SELECT suma(1, 2);

Powyższe zapytanie zwróci nam wynik „3”, natomiast my możemy wykorzystać ową funkcję w bardziej przydatny sposób:

SELECT suma(`price_netto` + `vat`) FROM `games`;

Możemy w miejscu parametrów wywołania funkcji podać nazwy kolumn zamiast sztywnych wartości.

Usuwanie funkcji

Na koniec przyda nam się usunięcie naszej funkcji, która pewnie do niczego nam się nie przyda 🙂

DROP FUNCTION suma;