Funkcje użytkownika (USER FUNCTIONS)

Funkcje użytkownika (ang. USER FUNCTIONS) w MySQL pozwalają na tworzenie własnych funkcji, które mogą być używane w zapytaniach SQL, podobnie jak wbudowane funkcje MySQL. Dzięki funkcjom użytkownika można znacznie uprościć skomplikowane operacje na danych oraz zoptymalizować często powtarzające się obliczenia w bazie danych.

Tworzenie funkcji użytkownika w MySQL

✅ Podstawowa składnia - opis

  • DELIMITER - Zmienia separator komend z domyślnego (używane w definicji funkcji, aby umożliwić wielowierszową definicję)
  • CREATE FUNCTION - Tworzy nową funkcję użytkownika.
  • parametr1, parametr2 - Określa parametry, które funkcja przyjmuje.
  • RETURNS typ_zwracany - Określa typ danych, jaki funkcja ma zwrócić (np. INT, VARCHAR, DECIMAL).
  • BEGIN ... END - Definiuje ciało funkcji, w którym znajdują się operacje SQL.
  • RETURN - Określa wartość, którą funkcja zwraca.
Przykład
-- Podstawowa składnia
DELIMITER $$

CREATE FUNCTION nazwa_funkcji(parametr1 typ, parametr2 typ)
RETURNS typ_zwracany
BEGIN
    -- Ciało funkcji
    RETURN wartosc;
END $$

DELIMITER ;

📌 Jak wywołać funkcję użytkownika?

✅ Podstawowa składnia - opis

  • Funkcje użytkownika wywołuje się podobnie jak wbudowane funkcje MySQL, używając zapytania SELECT.
Przykład
-- Podstawowa składnia
SELECT nazwa_funkcji(parametr1, parametr2);

-- Przykład wywołania funkcji dodaj_liczby
SELECT dodaj_liczby(5, 10);

📌 Funkcje użytkownika w zapytaniach SQL

  • Funkcję dodaj_liczby możemy używać w zapytaniach SQL. W tym przykładzie dla każdego pracownika dodajemy 10 do jego wieku i zwracamy wynik jako nową kolumnę wiek_plus_10.

📌 Jak usunąć funkcję użytkownika?

✅ Podstawowa składnia - opis

  • Funkcje użytkownika można usunąć za pomocą komendy DROP FUNCTION. Jeśli funkcja nie istnieje, opcja IF EXISTS zapobiegnie wyświetleniu błędu.
Przykład
-- Podstawowa składnia
DROP FUNCTION IF EXISTS nazwa_funkcji;

-- Przykład:
DROP FUNCTION IF EXISTS dodaj_liczby;
-- To zapytanie usuwa funkcję dodaj_liczby z bazy danych.

Podsumowanie

  • Funkcje użytkownika w MySQL pozwalają na tworzenie niestandardowych funkcji, które mogą być używane w zapytaniach SQL.
  • Do tworzenia funkcji używamy komendy CREATE FUNCTION, która przyjmuje parametry oraz zwraca wynik.
  • Funkcje użytkownika mogą ułatwić wykonywanie często powtarzających się obliczeń lub operacji na danych.
  • Do wywołania funkcji użytkownika wystarczy zapisać jej nazwę i przekazać odpowiednie argumenty w zapytaniu SQL.
  • Funkcje użytkownika mogą być usunięte z bazy danych za pomocą komendy DROP FUNCTION.