У овом одељку ћемо разумети рад ПостгреСКЛ функције, креирајте функцију команду и погледајте пример у реалном времену ПостгреСКЛ команда ЦРЕАТЕ ФУНЦТИОН користећи различите алате ПостгреСКЛ-а као што су пгадмин4 и СКЛ љуска (ПСКЛ).
И погледајте пример позивања а кориснички дефинисану функцију као такав позициона нотација именована нотација, мешовита нотација.
Шта је ПостгреСКЛ функција?
ПостгреСКЛ функција или а ускладиштена процедура је скуп СКЛ и процедуралних команди као нпр декларације, задаци, петље, ток контроле итд. који се чувају на серверу базе података и могу бити укључени коришћењем СКЛ интерфејс . А познат је и као ПостгреСКЛ ускладиштене процедуре .
Можемо креирати ПостгреСКЛ функције на сервал језицима, на пример, СКЛ , ПЛ/пгСКЛ , Ц , Питхон итд.
Омогућава нам да изводимо операције, које би генерално захтевале различите команде и кружна путовања у функцији унутар базе података.
Шта је наредба функције ПостгреСКЛ ЦРЕАТЕ?
У ПостгреСКЛ-у, ако желимо да наведемо нову кориснички дефинисану функцију, можемо да користимо ЦРЕАТЕ ФУНЦТИОН команда.
Синтакса команде функције ПостгреСКЛ ЦРЕАТЕ
Синтакса за Команда функције ПостгреСКЛ ЦРЕАТЕ је као што следи:
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; $$
У горњој синтакси, користили смо следеће параметре, као што је приказано у табели испод:
дф.лоц
Параметерс | Опис |
---|---|
име_функције |
|
[ИЛИ ЗАМЕНИ] |
|
Функција |
|
РЕТУРН |
|
Језик плпгскл |
|
Функција_тело |
|
Пример команде за креирање функције ПостгреСКЛ
Хајде да видимо другачији пример да бисмо разумели рад ПостгреСКЛ функција ЦРЕАТЕ команда.
Ми узимамо Ауто сто из Јаватпоинт база података, креирана у упутству за ПостгреСКЛ.
Креирање нове функције
У наредби испод, креирамо нову функцију која броји Аутомобили чији Цар_Прице између Цена_од и Цена_до параметри:
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; $$;
Тхе гет_цар_Прице функција је подељена на два главна дела, а то су Заглавље и тело функције .
Користили смо следеће параметре у Хеадер одељак:
- Првенствено наводимо име функције као гет_цар_Прице(), који је написано после креирати функцију
- Након тога, тхе гет_цар_Прице() функција садржи два параметра Прице_фром и Прице_то, који имају целобројни тип података.
- Затим гет_цар_Прице() функција преузима цео број дефинисан повратним инт условом.
- И на крају, користили смо језик функције као плпгскл .
Користили смо следеће параметре у Фунцтион Боди одељак:
- Користили смо низ наведен у доларима константна илустрација у одељку функција, која почиње са $$ и завршава се са $$ .
- Између $$ знак, можемо поставити блок, који покрива декларација и логика функције .
- У блоку декларације смо декларисали променљиву под називом Цар_цоунт, који чува аутомобиле одабране из Ауто
- У телу блока, користили смо СЕЛЕЦТ ИНТО команду за избор Цена аутомобила чије су вредности између Цена_од и Цена_до и дати излаз на Цар_цоунт
- На крају блока, користили смо РЕТУРН команду за добијање
Креирање функције у ПостгреСКЛ-у
У ПостгреСКЛ-у можемо креирати функцију на два начина:
ПостгреСКЛ Креирај функцију користећи пгАдмин
Пратићемо доњи процес да бисмо креирали функцију у пгАдмин:
Корак 1
Прво ћемо отворити најновију верзију пгАдмин у нашем локалном систему, а ми ћемо отићи до стабла објеката и повезати се са Јаватпоинт пример базе података у којој желимо да креирамо функцију.
Корак 2
Након тога, отворићемо алатку за упите кликом на Алат за упите прати одељак Алатке, као што можемо видети на слици испод:
трајање јава
Корак3
Да бисте креирали гет_цар_Прице1() функцију, користићемо горњи код у алат за упите и кликните на Извршити дугме.
Након имплементације горње команде, добићемо прозор са поруком у наставку који приказује да је функција гет_цар_Прице1() је био створио успешно у сличну базу података.
И можемо идентификовати функцију гет_цар_Прице() у Функције листу као што можемо видети на следећем снимку екрана:
Напомена: Ако не можемо да идентификујемо име функције, можемо десним тастером миша кликнути на чвор Функције и изабрати ставку менија Освежи... да бисмо оживели листу функција:
Креирање функције помоћу СКЛ Схелл (пскл)
Пратићемо доњи процес да бисмо направили табелу пскл :
Корак 1
- Прво ћемо отворити пскл у нашем локалном систему, а ми ћемо се повезати са базом података у којој желимо да креирамо функцију.
- Направићемо табелу у Јаватпоинт базу података, коју смо раније креирали у упутству за ПостгреСКЛ.
Корак 2
- За повезивање базе података унећемо следећу команду:
c javatpoint
Излаз
Након извршења горње команде, добићемо следећи излаз:
Напомена: Ако унесемо сличну команду као горе да бисмо креирали функцију, у пскл-у, она ће издати следећу грешку која гласи: функција гет_цар_прице већ постоји са истим типовима аргумената.
Стога, да бисмо решили ову грешку, креирамо нову функцију као гет_цар_Прице1 () у следећем кораку.
Корак3
јавна вс приватна јава
Унећемо наредбу испод да креирамо функцију као гет_цар_Прице1 () у Јаватпоинт база података.
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$# $$;
Излаз
Добићемо следећи излаз о имплементацији горње команде, који приказује да је гет_цар_Прице_цоунт1() функција је успешно креирана.
Корак 4
Можемо користити доњу команду да наведемо све кориснички дефинисане функције у постојећој бази података.
javatpoint=# df
Излаз
Након извршења горње команде, добићемо доњи излаз:
Како позвати функцију коју дефинише корисник
У ПостгреСКЛ-у можемо позвати кориснички дефинисану функцију на три начина, а то су:
Позивање функције помоћу позицијске нотације
Ако желимо да аргументе опишемо сличним редоследом као параметри, можемо позвати функцију са позиционе нотације помоћ.
топологије
Хајде да видимо пример примера да бисмо разумели Поситионал Нотатион радећи на позиву одређене функције.
У следећем примеру, гет_цар_прице() аргументи су 26000 и 70000 , што је еквивалентно Прице_фром и Прице_то параметрима.
Select get_car_Price(26000,70000);
Излаз
Добићемо следећи излаз имплементацијом горње команде, која преузима она четири реда чија цар_прице између 26000 до 70000.
Када функција готово да нема параметара, можемо позвати функцију уз помоћ позициона нотација .
Ако функција садржи неколико параметара, можемо користити именована нотација да позовете одређену функцију јер коришћењем именована нотација учиниће позив функције разумљивијим.
Позивање функције помоћу именоване нотације
У доњем примеру приказујемо рад позивања гет_цар_Прице() функција користећи именовану нотацију:
select get_car_Price( Price_from => 26000, Price_to => 70000 );
Излаз
Добићемо следећи излаз када извршимо горњу команду, која приказује четири реда на основу горњег опсега цар_прице .
У раније поменутој нотацији користили смо => да се разликују аргументи назив и вредност .
ПостгреСКЛ дозвољава креирање старије синтаксе на := за Компатибилност , као што можемо видети у следећој команди:
select get_car_Price( Price_from := 26000, Price_to := 70000 );
Излаз
Након извршења горње команде, добићемо сличан излаз у поређењу са резултатом горње команде где користимо ' =>' уместо ':=' .
Позивање функције коришћењем мешовите нотације
То је груписање позициони и именовани нотације.
Хајде да видимо пример примера да бисмо разумели рад Позивање функције коришћењем мешовите нотације.
У мешовити запис , не можемо користити под називом Параметри пре него што позициони параметри .
На пример:
У доњој команди користићемо именовани појам за Прице_фром параметар као Цена_од=>26000, док за Прице_то параметар, користили смо позициони појам као 70000 , као што можемо видети у доњој команди:
обилазак по налогу
select get_car_Price(Price_from=>26000,70000);
Излаз
Након извршења горње команде, ПостгреСКЛ покреће грешку која каже да је позициони аргумент не може да прати именовани аргумент .
Да бисмо решили горњу грешку, користимо позициона и именована нотација за гет_цар_прице() функција где је 26000 се користи за представљање Нотација позиције; с друге стране, Цена_до=>70000 се користи за представљање именована нотација :
select get_car_Price(26000,Price_to=>70000);
Излаз
Након извршења горње команде, добићемо доњи излаз који враћа оне аутомобиле чије цар_прице је између 26000 до 70000.
Преглед
У ПостгреСКЛ функција одељак, научили смо следеће теме:
- Користили смо ЦРЕАТЕ Функција команду за креирање кориснички дефинисане функције за одређену табелу.
- Разумели смо процес позивање кориснички дефинисане функције уз помоћ различитих записа као нпр Позициони, именовани и мешовити.