Składnia
Składnia funkcji PostgreSQL podano poniżej.
Utwórz lub zastąp funkcję Funkcję_name (argument_list)Wymagania wstępne
A. Zainstaluj PostgreSQL
Musisz zainstalować najnowszą wersję pakietów PostgreSQL w systemie operacyjnym Linux przed wykonaniem instrukcji SQL pokazanych w tym samouczku. Uruchom następujące polecenia, aby zainstalować i uruchom PostgreSQL:
$ sudo apt-get -y instalacja Postgresql PostgreSQL-Contib
$ sudo systemctl start postgresql.praca
Uruchom następujące polecenie, aby zalogować się do PostgreSQL z uprawnieniami root.
$ sudo -u postgres psql
B. Możesz utworzyć nazwaną bazę danych „TestDB” Uruchamiając następującą instrukcję SQL.
# Utwórz bazę danych testDB;Jeśli chcesz utworzyć tabelę w testdb baza danych, wtedy musisz wpisać "\C" Aby zmienić bazę danych. Ale w tym samouczku nie zmieniłem bazy danych i tabeli, a wszystkie funkcje zostały utworzone w domyślnej bazie danych Postgres.
C. Utwórz tabelę o nazwie produkty z czterema polami i wstaw cztery rekordy do tabeli, aby przetestować funkcje zdefiniowane przez użytkownika, które zostaną utworzone w dalszej części tego samouczka.
# Utwórz produkty tabeli (D. Włóż cztery rekordy do tabeli.
# Wstaw do produktów (nazwa, typ, cena)Różne przykłady funkcji zdefiniowanych przez użytkownika PostgreSQL
Zastosowania funkcji zdefiniowanych przez użytkownika z argumentem i bez argumentu w PostgreSQL zostały pokazane poniżej przy użyciu wielu przykładów.
Przykład-1: Funkcja zdefiniowana przez użytkownika bez argumentu i wartości zwracania
Uruchom następującą instrukcję SQL, aby utworzyć funkcję o nazwie funkcja1 () bez żadnego argumentu, a funkcja nic nie zwróci. Funkcja zaktualizuje rekord tabeli produktów, w której wartość identyfikatora wynosi 3 po wykonaniu.
# Utwórz lub zastąp funkcję funkcji1 ()Następujące dane wyjściowe pojawi się, jeśli funkcja zostanie utworzona pomyślnie w Postgres Baza danych.
Uruchom następującą instrukcję SQL, aby przeczytać wszystkie rekordy produkty tabela przed wykonaniem funkcja1 ().
# Wybierz * z produktów;Poniższe dane wyjściowe pokazuje wstawione rekordy produkty tabela.
Uruchom następującą instrukcję SQL, aby wykonać funkcję.
# Wybierz funkcję1 ();
Poniższe wyjście pokazuje, że wywołanie funkcji wpływa na jeden wiersz funkcja1 (). Wartość pola cenowego tabeli zostanie zaktualizowana, gdy wartość identyfikatora wynosi 3.
Uruchom następującą instrukcję SQL, aby przeczytać wszystkie rekordy produkty Tabela po wykonaniu funkcja1 ().
# Wybierz * z produktów;Poniższe dane wyjściowe pokazuje, że wartość cenowa tabeli produktów została zaktualizowana, gdzie wartość identyfikacyjna wynosi 3, a teraz wynosi 1500.
Przykład-2: funkcja zdefiniowana przez użytkownika z argumentem
Domyślny argument funkcji jest argument. Uruchom następującą instrukcję SQL, aby utworzyć funkcję o nazwie funkcja2 () z dwoma argumentami, a funkcja nic nie zwróci. Funkcja wstawię nowy rekord do produkty Tabela z wartościami argumentów.
# Utwórz lub zastąp funkcję funkcji2 (nazwa varchar, typ varchar, cena int)
Następujące dane wyjściowe pojawi się, jeśli funkcja zostanie utworzona pomyślnie w Postgres Baza danych.
Uruchom następującą instrukcję SQL, aby wykonać funkcję trzy w wartościach argumentów. Są to „iPhone”, „Mobile” i 2000.
# Wybierz funkcję2 („iPhone”, „Mobile”, 2000);Poniższe wyjście pokazuje, że wywołanie funkcji wpływa na jeden wiersz funkcja2 (), a nowy rekord zostanie włożony do tabeli.
Uruchom następującą instrukcję SQL, aby przeczytać wszystkie rekordy produkty Tabela po wykonaniu funkcja2 ().
# Wybierz * z produktów;Poniższe dane wyjściowe pokazuje, że nowy rekord został włożony do produkty tabela.
Przykład-3: funkcja zdefiniowana przez użytkownika bez argumentu
Argument na zewnątrz służy do zwrócenia wartości z funkcji. Uruchom następującą instrukcję SQL, aby utworzyć funkcję o nazwie funkcja3 () z jednym argumentem typu pieniędzy, a funkcja zwróci dane typu pieniędzy. Funkcja zwróci przypisaną wartość argumentu na zewnątrz.
# Utwórz lub zastąp funkcję funkcji3 (cena pieniądze)
Następujące dane wyjściowe pojawi się, jeśli funkcja zostanie utworzona pomyślnie w Postgres Baza danych.
Uruchom następującą instrukcję SQL, aby usunąć rekordy z tabeli produktów na podstawie wartości zwróconej przez funkcję3 ().
# Usuń z produktów, w których cena <= function3();
Poniższe dane wyjściowe pokazuje, że wywołanie funkcji wpływa trzy wiersze funkcja3 (). Zwrócona wartość funkcji wynosi 1000, która pasuje do trzech rekordów produkty stół, gdzie ID Wartości są 1, 2, I 4.
Uruchom następującą instrukcję SQL, aby przeczytać wszystkie rekordy produkty Tabela po wykonaniu funkcja3 (). Wyjście pokazuje, że w tabeli istnieją dwie rekordy, w której cena Wartości są ponad 1000.
# Wybierz * z produktów;Poniższe dane wyjściowe pokazuje, że 3 rekordy zostały usunięte z produkty tabela.
Przykład-4: Funkcja zdefiniowana przez użytkownika z argumentem Inout
Argument inout jest używany w funkcji do przekazywania wartości do funkcji i zwracania wartości z funkcji. Uruchom następującą instrukcję SQL, aby utworzyć funkcję o nazwie Oblicz() z argumentem typu zmiennoprzecinkowego i argumentem typu liczb całkowitych. Funkcja zwróci dane typu zmiennoprzecinkowego. Funkcja zostanie wykonana z kwotą sprzedaży, która będzie wartością zmiennoprzecinkową, a zniżką, która będzie liczbą całkowitą. Kwota sprzedaży po zniżce zostanie obliczona na podstawie wartości argumentów. Następnie obliczona kwota sprzedaży zostanie zwrócona z funkcji za pomocą argumentu Out.
# Utwórz lub wymień funkcję oblicz (Następujące dane wyjściowe pojawi się, jeśli funkcja zostanie utworzona pomyślnie w Postgres Baza danych.
Uruchom następującą instrukcję, aby wykonać funkcję ze 10000 jako kwota sprzedaży i 5 jako kwota rabatowa
#Select Oblicz (10000, 5) jako rabat_amount;5% 10000 jest 500 i 10000-500 = 9500. Następujące wyniki pokazuje kwotę sprzedaży po 5% zniżce.
Przykład-5: Użytkownik-DEffined Funkcja z Instrukcja warunkowa
Uruchom następującą instrukcję SQL, aby utworzyć funkcję o nazwie Search_product () z argumentem, a funkcja zwróci dane typu varchar. W tej funkcji pokazano sposób deklarowania zmiennej funkcji i korzystania z instrukcji warunkowej. Zmienna funkcyjna wymieniona Nazwa produktu został zdefiniowany z Nazwa rodzaj produkty tabela. Wartość argumentu, TP, będzie dopasowany do wartości typ pole produkty tabela. Jeśli w tabeli nie zostanie znalezione dopasowanie, wówczas komunikat zostanie podniesiony błąd: „Typ produktu nie istnieje”. Jeśli znaleziono jakikolwiek dopasowanie, to wartość Nazwa pole tego rodzaju produktu będzie przechowywane w zmiennej funkcji, a zmienna zostanie zwrócona z funkcji.
# Utwórz lub wymień funkcję wyszukiwania_product (TP varchar)Następujące dane wyjściowe pojawi się, jeśli funkcja zostanie utworzona pomyślnie w Postgres Baza danych.
Uruchom następującą instrukcję SQL, aby przeczytać wszystkie rekordy z tabeli produktów.
# Wybierz * z produktów;Uruchom następującą instrukcję SQL, aby wykonać funkcję Search_Product () z typem produktu „mobilny".
# Wybierz Search_Product („Mobile”);Uruchom następującą instrukcję SQL, aby wykonać funkcję Search_Product () z typem produktu „AC".
# Wybierz Search_Product („AC”);Następujące dane wyjściowe pokazuje, że produkty Tabela zawiera dwa rekordy wartości typu, „telewizja" I "mobilny". Wyjście pierwszego wykonywania funkcji zwróciło „iPhon”, ponieważ typ produktu „Mobile” istnieje w tabeli. Wyjście drugiego wykonywania funkcji zwróciło komunikat o błędzie, ponieważ typ produktu „AC” nie istnieje w tabeli.
Przykład-6: Funkcja zdefiniowana przez użytkownika z funkcją agregowaną
Każda funkcja zagregowana obsługiwana przez SQL może być używana w funkcji PostgreSQL. Uruchom następującą instrukcję SQL, aby utworzyć funkcję o nazwie count_product () bez żadnego argumentu, a funkcja zwróci dane typu liczb całkowitych. Funkcja agregująca liczba () została użyta w funkcji, która jest używana do zliczenia liczby wierszy na podstawie określonego warunku. Tutaj zmienna funkcyjna o nazwie Total_Product została zadeklarowana w funkcji, aby przechowywać wartość zwracaną funkcji Count (). Funkcja Count () została użyta w zapytaniu Select, aby policzyć te rekordy, w których nazwa produktu zaczyna się od słowa „Sony”.
# Utwórz lub zastąp funkcję Count_Product ()Następujące dane wyjściowe pojawi się, jeśli funkcja zostanie utworzona pomyślnie w Postgres Baza danych.
Uruchom następujące polecenie, aby wykonać funkcję, count_product ().
# Wybierz hrabia_product ();Poniższe wyjście pokazuje, że funkcja Count () zwraca wartość 1, ponieważ istnieje tylko jeden rekord, który pasuje do wartości, „Sony”.
Wniosek
Cel stosowania funkcji PostgreSQL i różnych sposobów korzystania z funkcji PostgreSQL z argumentami IN, OUT i inout zostały opisane w tym samouczku poprzez tworzenie wielu funkcji PostgreSQL. Argument IN służy do przeniesienia wartości do funkcji. Argument na zewnątrz służy do zwrócenia wartości z funkcji. Argument Inout służy do przeniesienia wartości wejściowej do funkcji i zwracania wyjścia z funkcji. Funkcję można również utworzyć bez żadnego argumentu. Mam nadzieję, że użytkownik będzie mógł poprawnie utworzyć i używać funkcji PostgreSQL.