FUNCTION в PostgreSQL: создание и использование функций

Что такое функция в PostgreSQL

Функция в PostgreSQL представляет собой набор инструкций SQL или процедурного языка, которые выполняют определённые операции и возвращают результат. Функции позволяют автоматизировать повторяющиеся задачи и упростить структуру запросов.

Создание функции

Функции создаются с помощью команды CREATE FUNCTION. Общий синтаксис выглядит следующим образом:

CREATE FUNCTION имя_функции(параметры) RETURNS тип_возвращаемого_значения AS $$
BEGIN
    -- SQL инструкции
END;
$$ LANGUAGE plpgsql;

Пример создания простой функции

Создание функции, которая возвращает сумму двух чисел:

CREATE FUNCTION sum_two_numbers(a integer, b integer) RETURNS integer AS $$
BEGIN
    RETURN a + b;
END;
$$ LANGUAGE plpgsql;

Использование функции

Созданную функцию вызывают через команду SELECT:

SELECT sum_two_numbers(10, 20);

Результатом выполнения будет число 30.

Функция с возвратом таблицы

Функция в PostgreSQL может возвращать не только одно значение, но и целую таблицу:

CREATE FUNCTION get_users_by_status(status VARCHAR) RETURNS TABLE(id INT, username VARCHAR) AS $$
BEGIN
    RETURN QUERY
    SELECT id, username FROM users WHERE users.status = status;
END;
$$ LANGUAGE plpgsql;

Использование такой функции:

SELECT * FROM get_users_by_status('active');

Удаление функции

Для удаления функции используется команда DROP FUNCTION:

DROP FUNCTION IF EXISTS sum_two_numbers(integer, integer);

Преимущества использования функций

  • Повторное использование кода.
  • Упрощение сложных SQL-запросов.
  • Возможность использования процедурного программирования.
  • Удобство обслуживания и оптимизация производительности.

Функции делают работу с PostgreSQL эффективной и структурированной, позволяя упрощать сложные задачи и повышать производительность базы данных.