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

Funkcia Postgresql Dla Vozvrata Tablicy



Иногда вам может потребоваться создать функцию, которая возвращает таблицу в вашей базе данных PostgreSQL для инкапсуляции набора результатов. Возможно создание функции «pgSQL», которая позволяет извлекать записи и использовать возвращаемый запрос, отображающий набор результатов в виде таблицы. В этом посте вы узнаете, как создать функцию PostgreSQL, возвращающую таблицу.

Как создать функцию PostgreSQL для возврата таблицы

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

Ниже приведен синтаксис для создания функции PostgreSQL, возвращающей таблицу:







СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ФУНКЦИЮ имя_функции(список_параметров)

ТАБЛИЦА ВОЗВРАЩЕНИЙ(список_столбцов)

КАК $$

НАЧАТЬ ВОЗВРАТ ЗАПРОС(запрос);

КОНЕЦ;

$$ LANGUAGE

Преимущество создания таких функций заключается в том, что они позволяют вам указывать различные «списки_столбцов» вместо возврата одного значения из вашей таблицы. Давайте приведем два примера, которые помогут нам понять, какие шаги следует предпринять.



Пример 1: Работа с одним входом

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



Ниже представлена ​​таблица «студент», которую мы будем использовать для нашего запроса:





На следующем изображении мы создаем функцию с именем «get_student», которая принимает в качестве аргумента INT. В разделе RETURNS TABLE мы возвращаем таблицу с четырьмя столбцами: «student_id», «student_name», «student_faculty» и «current_status».



Все эти столбцы получают свои значения из определяемого нами возвращаемого запроса. Обратите внимание, что возвращаемый запрос использует оператор WHERE, используя список параметров, который мы указываем при создании функции.

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

\df *get_student();

Мы добавляем звездочки, чтобы соответствовать любой функции с указанным именем. Вывод показывает, что в нашей базе данных есть функция PostgreSQL.

Последний шаг — протестировать созданную функцию. Запустите оператор «select», чтобы вызвать функцию. Затем добавьте ожидаемый аргумент. В нашем случае параметр имеет тип INT. Таким образом, мы добавляем 1 в качестве аргумента, чтобы получить соответствующие ему записи и вернуть таблицу, как показано ниже:

Пример 2. Работа с входным шаблоном

Если вы не уверены в том, какое значение использовать в возвращаемом запросе, вы можете использовать оператор ILIKE для сопоставления заданному шаблону. Например, если у вас есть имя и вы знаете только часть строки, оператор ILIKE позволяет вам использовать символ «%», чтобы определить, каким будет ваш шаблон.

В этом случае мы используем следующую таблицу и ориентируемся на столбец имени:

Мы создаем функцию, аналогичную той, которую мы делали ранее. Однако тип параметра изменился, и в возвращаемом запросе используется оператор ILIKE, который добавляется в качестве аргумента при вызове функции.

Как только функция будет готова, мы можем вызвать ее, чтобы вернуть таблицу. Есть разные способы сделать это. Например, если шаблон поиска содержит в строке «Джо», мы выполняем командный запрос следующим образом:

Выберите * из get_details('%Jo%');

Мы сопоставляем все значения с «Джо» в их строке, давая нам две записи.

Если мы знаем только последнюю часть строки, мы искажаем запрос и запускаем его следующим образом:

Выберите * из get_details('%Tyson');

Наконец, если мы знаем первую часть строки, мы добавляем символ «&» после шаблона, как показано ниже:

Выберите * из get_details('Tim%');

Это разные примеры использования функции PostgreSQL для возврата таблицы.

Заключение

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