logo

Funkcje PostgreSQLa

W tej części omówimy działanie narzędzia Funkcje PostgreSQL, utwórz funkcję polecenie i zobacz przykład w czasie rzeczywistym Polecenie PostgreSQL UTWÓRZ FUNKCJĘ przy użyciu różnych narzędzi PostgreSQL, takich jak pgadmin4 I Powłoka SQL (PSQL).

I zobacz przykład wywołania a funkcja zdefiniowana przez użytkownika Jak na przykład notacja pozycyjna zwana notacją, notacja mieszana.

Co to jest funkcja PostgreSQL?

Funkcja PostgreSQL lub a procedura składowana to zestaw poleceń SQL i proceduralnych, takich jak deklaracje, przypisania, pętle, przepływ kontroli itp. przechowywane na serwerze bazy danych i mogą być zaangażowane przy użyciu Interfejs SQL . I jest również znany jako Procedury zapisane w PostgreSQL .

Funkcje PostgreSQL możemy tworzyć w językach serwalowych, np. SQL-a , PL/pgSQL , C , Pyton itp.

Umożliwia nam wykonywanie operacji, które zazwyczaj wymagałyby różnych poleceń i operacji w obrębie funkcji w bazie danych.

Co to jest polecenie PostgreSQL CREATE Function?

W PostgreSQL, jeśli chcemy określić nową funkcję zdefiniowaną przez użytkownika, możemy użyć UTWÓRZ FUNKCJĘ Komenda.

Składnia polecenia PostgreSQL CREATE Function

Składnia dla Polecenie PostgreSQL CREATE Funkcja następująco:

 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; $$ 

W powyższej składni użyliśmy następujących parametrów, jak pokazano w poniższej tabeli:

Menedżer zadań dla Linuksa
Parametry Opis
nazwa_funkcji
  • The nazwa funkcji Parametr służy do zdefiniowania nazwy funkcji.
  • Nazwa funkcji jest zapisywana po UTWÓRZ FUNKCJĘ słowo kluczowe.
[LUB ZAMIEŃ]
  • Możemy skorzystać z LUB WYMIEN słowo kluczowe, jeśli chcemy zmienić bieżącą funkcję.
  • I jest to parametr opcjonalny.
Funkcjonować
  • Po użyciu LUB WYMIEN słowo kluczowe, możemy zdefiniować funkcjonować lista parametrów ujęta w nawiasach po Nazwa funkcji.
  • Funkcja może zawierać zero lub kilka parametrów.
POWRÓT
  • Typ danych możemy zdefiniować po POWRÓT słowo kluczowe, które zwrócimy z funkcji.
  • Może to być typ podstawowy, złożony, domenowy lub odwołanie do typu kolumny tabeli.
Język plpgsql
  • Służy do zdefiniowania nazwy języka proceduralnego, w którym funkcja jest wykonywana.
  • I nie tylko plpgsql, PostgreSQL obsługuje różne języki proceduralne.
Funkcja_treść
  • The funkcja_treść zawiera wykonywalne części logiki.

Przykład polecenia PostgreSQL Utwórz funkcję

Spójrzmy na inny przykład, aby zrozumieć działanie narzędzia Funkcja UTWÓRZ PostgreSQL Komenda.

Bierzemy Samochód stolik z Punkt Java baza danych utworzona w samouczku PostgreSQL.

Tworzenie nowej funkcji

W poniższym poleceniu tworzymy nową funkcję, która zlicza Samochody którego Cena_samochodu pomiędzy Cena_od i Cena_do parametry:

 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 Funkcja jest podzielona na dwie główne sekcje, którymi są Nagłówek i treść funkcji .

W pliku użyliśmy następujących parametrów nagłówek Sekcja:

  • Przede wszystkim podajemy nazwę funkcji jako get_car_Price(), która jest napisane po utwórz funkcję
  • Po tym, get_car_Price() funkcja zawiera dwa parametry Cena od I Cena_do, posiadający typ danych typu całkowitego.
  • A później get_car_Price() funkcja pobiera liczbę całkowitą zdefiniowaną przez warunek return int.
  • Na koniec użyliśmy języka funkcyjnego as plpgsql .

W pliku użyliśmy następujących parametrów Ciało funkcji Sekcja:

  • Skorzystaliśmy z ciąg cytowany w dolarach stała ilustracja w sekcji funkcji, która zaczyna się od $$ i kończy się $$ .
  • Pomiędzy $$ znak, możemy umieścić blok, który zakrywa Deklaracja I logika funkcji .
  • W bloku deklaracji zadeklarowaliśmy zmienną o nazwie liczba_samochodów, który przechowuje samochody wybrane z Samochód
  • W treści sekcji blokowej użyliśmy metody WYBIERZ W polecenie, aby wybrać cenę samochodów, których wartości znajdują się pomiędzy Cena_od i Cena_do i podaj dane wyjściowe do Liczba_samochodów
  • Na końcu bloku użyliśmy POWRÓT polecenie uzyskania

Tworzenie funkcji w PostgreSQL

W PostgreSQL funkcję możemy utworzyć na dwa sposoby:

    PostgreSQL Utwórz funkcję za pomocą pgAdmin PostgreSQL Utwórz funkcję przy użyciu powłoki SQL

PostgreSQL Utwórz funkcję za pomocą pgAdmin

Będziemy postępować zgodnie z poniższym procesem, aby utworzyć funkcję w pgAdmin:

Krok 1

Najpierw otworzymy najnowszą wersję pgAdmin w naszym systemie lokalnym, a my przejdziemy do drzewa obiektów i połączymy się z Punkt Java przykładowa baza danych, w której chcemy utworzyć funkcję.

Krok 2

Następnie otworzymy narzędzie do wysyłania zapytań, klikając Narzędzie do wysyłania zapytań w sekcji Narzędzia, jak widać na poniższym zrzucie ekranu:

konwencja nazewnictwa Java
Funkcja PoatgreSQL2

Krok 3

Aby utworzyć get_car_Price1() funkcji, użyjemy powyższego kodu w pliku narzędzie do wysyłania zapytań i kliknij Wykonać przycisk.

Po zaimplementowaniu powyższego polecenia otrzymamy poniższy komunikat pokazujący, że funkcja została wykonana get_car_Price1() był Utworzony pomyślnie do podobnej bazy danych.

Funkcja PoatgreSQL

I możemy zidentyfikować funkcję get_car_Price() w Funkcje lista, jak widać na poniższym zrzucie ekranu:

Funkcja PoatgreSQL

Uwaga: Jeżeli nie możemy zidentyfikować nazwy funkcji, możemy kliknąć prawym przyciskiem myszy węzeł Funkcje i wybrać z menu opcję Odśwież..., aby odświeżyć listę funkcji:

Funkcja PoatgreSQL

Tworzenie funkcji przy użyciu powłoki SQL (psql)

Będziemy postępować zgodnie z poniższym procesem, aby utworzyć tabelę psql :

Krok 1

  • Najpierw otworzymy plik psql w naszym systemie lokalnym i połączymy się z bazą danych, w której chcemy utworzyć funkcję.
  • Stworzymy tabelę w pliku javatpoint bazę danych, którą utworzyliśmy wcześniej w samouczku PostgreSQL.

Krok 2

  • Aby połączyć się z bazą danych, wpiszemy poniższe polecenie:
 c javatpoint 

Wyjście

Po wykonaniu powyższego polecenia otrzymamy następujące dane wyjściowe:

Funkcja PoatgreSQL

Uwaga: Jeśli wprowadzimy podobne polecenie jak powyżej, aby utworzyć funkcję, w psql, wyświetli się następujący błąd: funkcja get_car_price już istnieje z tymi samymi typami argumentów.

Funkcja PoatgreSQL

Dlatego, aby rozwiązać ten błąd, tworzymy nową funkcję jako get_car_Price1 () w następnym kroku.

Krok 3

lista tablic posortowana

Wprowadzimy poniższe polecenie, aby utworzyć funkcję Jak get_car_Price1 () w javatpoint Baza danych.

 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$# $$; 

Wyjście

Po wykonaniu powyższego polecenia otrzymamy następujące dane wyjściowe, które wyświetlają, że get_car_Price_count1() funkcja została pomyślnie utworzona.

Funkcja PoatgreSQL

Krok 4

Możemy użyć poniższego polecenia, aby wyświetlić listę wszystkich funkcji zdefiniowanych przez użytkownika w istniejącej bazie danych.

 javatpoint=# df 

Wyjście

Po wykonaniu powyższego polecenia otrzymamy poniższe dane wyjściowe:

Funkcja PoatgreSQL

Jak wywołać funkcję zdefiniowaną przez użytkownika

W PostgreSQL funkcję zdefiniowaną przez użytkownika możemy wywołać na trzy sposoby, które są następujące:

    Notacja pozycyjna Notacja nazwana Notacja mieszana

Wywołanie funkcji przy użyciu notacji pozycyjnej

Jeśli chcemy opisać argumenty w podobnej kolejności jak parametry, możemy wywołać funkcję za pomocą notacja pozycyjna pomoc.

hostowanie Linuksa

Zobaczmy przykładowy przykład, aby zrozumieć Notacja pozycyjna pracuje nad wywołaniem określonej funkcji.

W poniższym przykładzie get_car_price() argumenty są 26000 I 70000 , co jest równoważne Cena od I Cena_do parametry.

 Select get_car_Price(26000,70000); 

Wyjście

Po wykonaniu powyższego polecenia otrzymamy następujące dane wyjściowe, które pobierają te cztery wiersze, których cena_samochodu jest pomiędzy 26 000 do 70 000.

Funkcja PoatgreSQL

Gdy funkcja nie ma prawie żadnych parametrów, możemy wywołać funkcję za pomocą notacja pozycyjna .

Jeśli funkcja zawiera kilka parametrów, możemy użyć nazwana notacja wywołać określoną funkcję, ponieważ użycie metody nazwana notacja sprawi, że wywołanie funkcji będzie bardziej zrozumiałe.

Wywołanie funkcji przy użyciu notacji nazwanej

W poniższym przykładzie pokazujemy działanie wywołania metody get_car_Price() funkcja przy użyciu nazwanej notacji:

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

Wyjście

Po wykonaniu powyższego polecenia otrzymamy następujące dane wyjściowe, które wyświetlają cztery wiersze w oparciu o powyższy zakres cena_samochodu .

Funkcja PoatgreSQL

W notacji wspomnianej wcześniej użyliśmy => rozróżnić argumenty nazwa i wartość .

PostgreSQL pozwala na utworzenie starszej składni na := dla Kompatybilność wsteczna , jak widzimy w następującym poleceniu:

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

Wyjście

Po wykonaniu powyższego polecenia otrzymamy podobny wynik w porównaniu z wynikiem powyższego polecenia, w którym używamy „ =>' zamiast ':=' .

Funkcja PoatgreSQL

Wywołanie funkcji przy użyciu notacji mieszanej

Jest to grupowanie pozycyjne i nazwane notacje.

Zobaczmy przykładowy przykład, aby zrozumieć działanie Wywołanie funkcji przy użyciu notacji mieszanej.

w notacja mieszana , nie możemy użyć o nazwie Parametry zanim Parametry pozycyjne .

Na przykład:

W poniższym poleceniu użyjemy metody nazwane pojęcie Do Cena od parametr jako Cena_od=>26000, natomiast dla Cena_do parametru, użyliśmy parametru pojęcie pozycyjne Jak 70000 , jak widzimy w poniższym poleceniu:

ścieżka ustawiona w Javie
 select get_car_Price(Price_from=>26000,70000); 

Wyjście

Po wykonaniu powyższego polecenia PostgreSQL zgłasza błąd, który informuje, że plik argument pozycyjny nie może następować po nazwanym argumencie .

Funkcja PoatgreSQL

Aby rozwiązać powyższy błąd, używamy notacja pozycyjna i nazwana Do get_car_price() funkcja, gdzie 26000 służy do reprezentowania Notacja pozycyjna; z drugiej strony, Cena_do=>70000 służy do reprezentowania nazwana notacja :

 select get_car_Price(26000,Price_to=>70000); 

Wyjście

Po wykonaniu powyższego polecenia otrzymamy poniższe dane wyjściowe, które zwracają te samochody, których cena_samochodu wynosi od 26 000 do 70 000.

Funkcja PoatgreSQL

Przegląd

w Funkcja PostgreSQL sekcji poznaliśmy następujące tematy:

  • Skorzystaliśmy z UTWÓRZ funkcję polecenie utworzenia funkcji zdefiniowanej przez użytkownika dla konkretnej tabeli.
  • Zrozumieliśmy proces wywołanie funkcji zdefiniowanej przez użytkownika za pomocą różnych oznaczeń, np Pozycyjne, nazwane i mieszane.