У цьому розділі ми збираємося зрозуміти роботу Функції 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
Параметри | опис |
---|---|
ім'я_функції |
|
[АБО ЗАМІНИТИ] |
|
функція |
|
ПОВЕРНЕННЯ |
|
Мова plpgsql |
|
Тіло_функції |
|
Приклад команди 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
Ми збираємося виконати наведений нижче процес, щоб створити функцію в pgAdmin:
Крок 1
По-перше, ми відкриємо останню версію pgAdmin у нашій локальній системі, і ми перейдемо до дерева об’єктів і підключимося до Javatpoint зразок бази даних, у якій ми хочемо створити функцію.
цифри алфавіту
Крок 2
Після цього ми відкриємо інструмент запиту, натиснувши на Інструмент запитів слідує за розділом Інструменти, як ми бачимо на скріншоті нижче:
Крок 3
Щоб створити get_car_Price1() ми використаємо наведений вище код у інструмент запиту і натисніть кнопку Виконати кнопку.
Після виконання наведеної вище команди ми отримаємо наведене нижче вікно повідомлення, яке відображає цю функцію get_car_Price1() був створений успішно в подібну базу даних.
І ми можемо визначити функцію get_car_Price() в Функції список, як ми бачимо на наступному знімку екрана:
Примітка. Якщо ми не можемо визначити назву функції, ми можемо клацнути правою кнопкою миші вузол «Функції» та вибрати пункт меню «Оновити...», щоб відновити список функцій:
Створення функції за допомогою SQL Shell(psql)
Щоб створити таблицю, ми виконаємо наведений нижче процес psql :
Крок 1
- По-перше, ми відкриємо psql у нашій локальній системі, і ми підключимося до бази даних, де ми хочемо створити функцію.
- Ми створимо таблицю в javatpoint бази даних, яку ми створили раніше в підручнику PostgreSQL.
Крок 2
- Для підключення бази даних ми введемо наступну команду:
c javatpoint
Вихід
Після виконання наведеної вище команди ми отримаємо наступний результат:
Примітка: якщо ми введемо подібну команду, як описано вище, щоб створити функцію, у psql, це видасть наведену нижче помилку: функція get_car_price уже існує з тими самими типами аргументів.
Тому, щоб вирішити цю помилку, ми створюємо нову функцію як 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() функція успішно створена.
Крок 4
Ми можемо використати наведену нижче команду, щоб отримати список усіх визначених користувачем функцій у існуючій базі даних.
javatpoint=# df
Вихід
Після виконання наведеної вище команди ми отримаємо такий результат:
Як викликати функцію, визначену користувачем
У PostgreSQL ми можемо викликати визначену користувачем функцію трьома способами, а саме:
Виклик функції за допомогою позиційного запису
Якщо ми хочемо описати аргументи в подібному порядку як параметри, ми можемо викликати функцію з позиційні позначення допомогти.
cdr повна форма
Давайте подивимося на приклад, щоб зрозуміти Позиційна нотація робота над викликом певної функції.
У наведеному нижче прикладі get_car_price() аргументи є 26000 і 70000 , що еквівалентно Ціна_від і Price_to параметри.
Select get_car_Price(26000,70000);
Вихід
Ми отримаємо наступний вихід після реалізації наведеної вище команди, яка отримує ці чотири рядки car_price знаходиться між 26000 до 70000.
Якщо функція майже не має параметрів, ми можемо викликати функцію за допомогою позиційне позначення .
Якщо функція містить кілька параметрів, ми можемо використовувати іменована нотація викликати певну функцію, оскільки за допомогою іменована нотація зробить виклик функції більш зрозумілим.
Виклик функції за допомогою іменованої нотації
У прикладі нижче ми показуємо роботу виклику get_car_Price() функція з використанням іменованого позначення:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
Вихід
Виконуючи наведену вище команду, ми отримаємо наступний результат, який відображає чотири рядки на основі наведеного вище діапазону car_price .
У згаданих раніше позначеннях ми використовували => розрізняти аргументи назва та значення .
PostgreSQL дозволяє створювати старіший синтаксис на := для зворотна сумісність , як ми бачимо в наступній команді:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
Вихід
Після виконання наведеної вище команди ми отримаємо аналогічний результат порівняно з результатом наведеної вище команди, де ми використовуємо ' =>' замість ':=' .
Виклик функції з використанням змішаної нотації
Це групування позиційні та ім позначення.
Давайте подивимося приклад, щоб зрозуміти роботу Виклик функції з використанням змішаної нотації.
В змішана нотація , ми не можемо використовувати іменовані параметри раніше позиційні параметри .
Наприклад:
У команді нижче ми будемо використовувати назване поняття для Ціна_від параметр як Ціна_від=>26000, тоді як для Price_to параметр, ми використали позиційне поняття як 70000 , як ми можемо бачити в команді нижче:
які місяці q1
select get_car_Price(Price_from=>26000,70000);
Вихід
Після виконання наведеної вище команди PostgreSQL видає повідомлення про помилку, яка говорить, що позиційний аргумент не може слідувати за названим аргументом .
Щоб вирішити цю помилку, ми використовуємо позиційна та іменована нотація для get_car_price() функція, де 26000 використовується для представлення Позиційна нотація; з іншого боку, Price_to=>70000 використовується для представлення іменована нотація :
select get_car_Price(26000,Price_to=>70000);
Вихід
Після виконання наведеної вище команди ми отримаємо наведений нижче вихід, який повертає ті автомобілі, чиї car_price становить від 26000 до 70000.
Огляд
В Функція PostgreSQL ми вивчили такі теми:
- Ми використали Функція CREATE команда для створення визначеної користувачем функції для конкретної таблиці.
- Ми зрозуміли процес виклик функції, визначеної користувачем за допомогою різних нотацій, таких як Позиційні, іменовані та змішані.