logo

Функції PostgreSQL

У цьому розділі ми збираємося зрозуміти роботу Функції PostgreSQL, функція create і перегляньте приклад у реальному часі Команда PostgreSQL CREATE FUNCTION за допомогою різних інструментів PostgreSQL, таких як pgadmin4 і SQL оболонка (PSQL).

І подивіться приклад виклику a функція, визначена користувачем як от позиційна нотація іменована нотація, змішана нотація.

Що таке функція PostgreSQL?

Функція PostgreSQL або a збережена процедура це набір SQL і процедурних команд, таких як оголошення, призначення, цикли, потік керування тощо зберігаються на сервері бази даних і можуть бути задіяні за допомогою Інтерфейс SQL . А ще він відомий як Збережені процедури PostgreSQL .

Ми можемо створювати функції PostgreSQL на мовах serval, наприклад, SQL , PL/pgSQL , C , Python тощо

Це дає нам змогу виконувати операції, які, як правило, приймають різні команди та зворотні переміщення у функції в базі даних.

Що таке команда PostgreSQL CREATE Function?

У PostgreSQL, якщо ми хочемо вказати нову функцію, визначену користувачем, ми можемо використовувати СТВОРИТИ ФУНКЦІЮ команда.

Синтаксис команди PostgreSQL CREATE Function

Синтаксис для Команда PostgreSQL CREATE Function полягає в наступному:

 CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype LANGUAGE plpgsql AS $variable_name$ DECLARE declaration; [...] -- variable declaration BEGIN [...] -- logic RETURN variable_name END; $$ 

У наведеному вище синтаксисі ми використали такі параметри, як показано в таблиці нижче:

основи збірки ubuntu
Параметри опис
ім'я_функції
  • The назва функції Параметр використовується для визначення імені функції.
  • Ім'я функції пишеться після СТВОРИТИ ФУНКЦІЮ ключове слово.
[АБО ЗАМІНИТИ]
  • Ми можемо використовувати АБО ЗАМІНИТИ якщо ми хочемо змінити поточну функцію.
  • І це необов'язковий параметр.
функція
  • Після використання АБО ЗАМІНИТИ ключове слово, ми можемо визначити функція список параметрів, які наведено в дужках після Назва функції.
  • І функція може містити нуль або декілька параметрів.
ПОВЕРНЕННЯ
  • Ми можемо визначити тип даних після ПОВЕРНЕННЯ ключове слово, яке ми збираємося повернути з функції.
  • Це може бути базовий, складений, доменний тип або посилання типу стовпця таблиці.
Мова plpgsql
  • Він використовується для визначення назви процедурної мови, якою виконується функція.
  • І не тільки plpgsql, PostgreSQL підтримує різні процедурні мови.
Тіло_функції
  • The тіло_функції містить виконувані частини логіки.

Приклад команди PostgreSQL Create Function

Давайте розглянемо інший приклад, щоб зрозуміти роботу Функція PostgreSQL CREATE команда.

Ми беремо автомобіль стіл від ст Javatpoint бази даних, створеної в підручнику PostgreSQL.

Створення нової функції

У команді нижче ми створюємо нову функцію, яка підраховує Автомобілі чий Car_Price між Price_from і Price_to параметри:

 Create function get_car_Price(Price_from int, Price_to int) returns int language plpgsql as $$ Declare Car_count integer; Begin select count(*) into Car_count from Car where Car_price between Price_from and Price_to; return Car_count; End; $$; 

The get_car_Price функція розділена на два основні розділи, які є Заголовок і тіло функції .

Ми використали такі параметри в Заголовок розділ:

  • По-перше, ми вказуємо назву функції як get_car_Price(), який пишеться після створити функцію
  • Після цього, get_car_Price() функція містить два параметри Ціна_від і Price_to, має цілочисельний тип даних.
  • Потім, get_car_Price() функція отримує ціле число, визначене умовою return int.
  • І, нарешті, ми використали функцію language as plpgsql .

Ми використали такі параметри в Тіло функції розділ:

  • Ми використали рядок у доларових лапках постійна ілюстрація в розділі функцій, який починається з $$ і закінчується на $$ .
  • Між $$ знак, ми можемо розмістити блок, який покриває декларація і логіка функції .
  • У блоці оголошення ми оголосили змінну під назвою Car_count, який зберігає автомобілі, вибрані з автомобіль
  • У тілі розділу блоку ми використали ВИБРАТИ В команда для вибору ціни автомобілів, значення яких знаходяться між Price_from і Price_to і надайте результат Car_count
  • У кінці блоку ми використали ПОВЕРНЕННЯ команда отримати

Створення функції в PostgreSQL

У PostgreSQL ми можемо створити функцію двома способами:

    Функція створення PostgreSQL за допомогою pgAdmin Функція створення PostgreSQL за допомогою оболонки SQL

Функція створення PostgreSQL за допомогою pgAdmin

Ми збираємося виконати наведений нижче процес, щоб створити функцію в pgAdmin:

Крок 1

По-перше, ми відкриємо останню версію pgAdmin у нашій локальній системі, і ми перейдемо до дерева об’єктів і підключимося до Javatpoint зразок бази даних, у якій ми хочемо створити функцію.

цифри алфавіту

Крок 2

Після цього ми відкриємо інструмент запиту, натиснувши на Інструмент запитів слідує за розділом Інструменти, як ми бачимо на скріншоті нижче:

Функція PoatgreSQL 2

Крок 3

Щоб створити get_car_Price1() ми використаємо наведений вище код у інструмент запиту і натисніть кнопку Виконати кнопку.

Після виконання наведеної вище команди ми отримаємо наведене нижче вікно повідомлення, яке відображає цю функцію get_car_Price1() був створений успішно в подібну базу даних.

Функція PoatgreSQL

І ми можемо визначити функцію get_car_Price() в Функції список, як ми бачимо на наступному знімку екрана:

Функція PoatgreSQL

Примітка. Якщо ми не можемо визначити назву функції, ми можемо клацнути правою кнопкою миші вузол «Функції» та вибрати пункт меню «Оновити...», щоб відновити список функцій:

Функція PoatgreSQL

Створення функції за допомогою SQL Shell(psql)

Щоб створити таблицю, ми виконаємо наведений нижче процес psql :

Крок 1

  • По-перше, ми відкриємо psql у нашій локальній системі, і ми підключимося до бази даних, де ми хочемо створити функцію.
  • Ми створимо таблицю в javatpoint бази даних, яку ми створили раніше в підручнику PostgreSQL.

Крок 2

  • Для підключення бази даних ми введемо наступну команду:
 c javatpoint 

Вихід

Після виконання наведеної вище команди ми отримаємо наступний результат:

Функція PoatgreSQL

Примітка: якщо ми введемо подібну команду, як описано вище, щоб створити функцію, у psql, це видасть наведену нижче помилку: функція get_car_price уже існує з тими самими типами аргументів.

Функція PoatgreSQL

Тому, щоб вирішити цю помилку, ми створюємо нову функцію як get_car_Price1 () на наступному кроці.

Крок 3

як перетворити int на рядок

Ми введемо команду нижче, щоб створити функцію як get_car_Price1 () в javatpoint бази даних.

 javatpoint=# Create function get_car_Price1(Price_from int, Price_to int) javatpoint-# returns int javatpoint-# language plpgsql javatpoint-# as javatpoint-# $$ javatpoint$# Declare javatpoint$# Car_count integer; javatpoint$# Begin javatpoint$# select count(*) javatpoint$# into Car_count javatpoint$# from Car javatpoint$# where car_price between Price_from and Price_to; javatpoint$# return Price_count; javatpoint$# End; javatpoint$# $$; 

Вихід

Ми отримаємо наступний вихід після реалізації наведеної вище команди, який показує, що get_car_Price_count1() функція успішно створена.

Функція PoatgreSQL

Крок 4

Ми можемо використати наведену нижче команду, щоб отримати список усіх визначених користувачем функцій у існуючій базі даних.

 javatpoint=# df 

Вихід

Після виконання наведеної вище команди ми отримаємо такий результат:

Функція PoatgreSQL

Як викликати функцію, визначену користувачем

У PostgreSQL ми можемо викликати визначену користувачем функцію трьома способами, а саме:

    Позиційне позначення Іменована нотація Змішана нотація

Виклик функції за допомогою позиційного запису

Якщо ми хочемо описати аргументи в подібному порядку як параметри, ми можемо викликати функцію з позиційні позначення допомогти.

cdr повна форма

Давайте подивимося на приклад, щоб зрозуміти Позиційна нотація робота над викликом певної функції.

У наведеному нижче прикладі get_car_price() аргументи є 26000 і 70000 , що еквівалентно Ціна_від і Price_to параметри.

 Select get_car_Price(26000,70000); 

Вихід

Ми отримаємо наступний вихід після реалізації наведеної вище команди, яка отримує ці чотири рядки car_price знаходиться між 26000 до 70000.

Функція PoatgreSQL

Якщо функція майже не має параметрів, ми можемо викликати функцію за допомогою позиційне позначення .

Якщо функція містить кілька параметрів, ми можемо використовувати іменована нотація викликати певну функцію, оскільки за допомогою іменована нотація зробить виклик функції більш зрозумілим.

Виклик функції за допомогою іменованої нотації

У прикладі нижче ми показуємо роботу виклику get_car_Price() функція з використанням іменованого позначення:

 select get_car_Price( Price_from => 26000, Price_to => 70000 ); 

Вихід

Виконуючи наведену вище команду, ми отримаємо наступний результат, який відображає чотири рядки на основі наведеного вище діапазону car_price .

Функція PoatgreSQL

У згаданих раніше позначеннях ми використовували => розрізняти аргументи назва та значення .

PostgreSQL дозволяє створювати старіший синтаксис на := для зворотна сумісність , як ми бачимо в наступній команді:

 select get_car_Price( Price_from := 26000, Price_to := 70000 ); 

Вихід

Після виконання наведеної вище команди ми отримаємо аналогічний результат порівняно з результатом наведеної вище команди, де ми використовуємо ' =>' замість ':=' .

Функція PoatgreSQL

Виклик функції з використанням змішаної нотації

Це групування позиційні та ім позначення.

Давайте подивимося приклад, щоб зрозуміти роботу Виклик функції з використанням змішаної нотації.

В змішана нотація , ми не можемо використовувати іменовані параметри раніше позиційні параметри .

Наприклад:

У команді нижче ми будемо використовувати назване поняття для Ціна_від параметр як Ціна_від=>26000, тоді як для Price_to параметр, ми використали позиційне поняття як 70000 , як ми можемо бачити в команді нижче:

які місяці q1
 select get_car_Price(Price_from=>26000,70000); 

Вихід

Після виконання наведеної вище команди PostgreSQL видає повідомлення про помилку, яка говорить, що позиційний аргумент не може слідувати за названим аргументом .

Функція PoatgreSQL

Щоб вирішити цю помилку, ми використовуємо позиційна та іменована нотація для get_car_price() функція, де 26000 використовується для представлення Позиційна нотація; з іншого боку, Price_to=>70000 використовується для представлення іменована нотація :

 select get_car_Price(26000,Price_to=>70000); 

Вихід

Після виконання наведеної вище команди ми отримаємо наведений нижче вихід, який повертає ті автомобілі, чиї car_price становить від 26000 до 70000.

Функція PoatgreSQL

Огляд

В Функція PostgreSQL ми вивчили такі теми:

  • Ми використали Функція CREATE команда для створення визначеної користувачем функції для конкретної таблиці.
  • Ми зрозуміли процес виклик функції, визначеної користувачем за допомогою різних нотацій, таких як Позиційні, іменовані та змішані.