logo

PostgreSQL İşlevleri

Bu bölümde işleyişini anlayacağız. PostgreSQL işlevleri, işlev oluşturma komutunu kullanın ve gerçek zamanlı örneğini görün PostgreSQL CREATE FUNCTION komutu PostgreSQL'in farklı araçlarını kullanarak pgadmin4 Ve SQL kabuğu (PSQL).

Ve arama örneğine bakın kullanıcı tanımlı fonksiyon örneğin notasyon adı verilen konumsal notasyon, karışık notasyon.

PostgreSQL İşlevi Nedir?

Bir PostgreSQL işlevi veya saklı yordam gibi bir dizi SQL ve prosedürel komuttan oluşur. bildirimler, atamalar, döngüler, kontrol akışı vb. veritabanı sunucusunda saklanır ve kullanılarak dahil edilebilir. SQL arayüzü . Ve aynı zamanda şu şekilde de bilinir: PostgreSQL saklı yordamları .

PostgreSQL fonksiyonlarını serval dillerinde oluşturabiliriz, örneğin: SQL , PL/pgSQL , C , Python vesaire.

Veritabanı içindeki bir fonksiyonda genellikle çeşitli komutlar ve gidiş dönüşler gerektiren işlemleri gerçekleştirmemizi sağlar.

PostgreSQL CREATE Fonksiyonu komutu nedir?

PostgreSQL'de kullanıcı tanımlı yeni bir fonksiyon belirtmek istersek şunu kullanabiliriz: İŞLEV OLUŞTUR emretmek.

PostgreSQL CREATE İşlev komutunun sözdizimi

Sözdizimi PostgreSQL CREATE İşlev komutu Şöyleki:

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

Yukarıdaki sözdiziminde, aşağıdaki tabloda gösterildiği gibi aşağıdaki parametreleri kullandık:

in.next java
Parametreler Tanım
fonksiyon adı
  • fonksiyon adı parametresi fonksiyon adını tanımlamak için kullanılır.
  • Fonksiyon adı, fonksiyondan sonra yazılır. İŞLEV OLUŞTUR anahtar kelime.
[VEYA DEĞİŞTİRİN]
  • Şunu kullanabiliriz: VEYA DEĞİŞTİR Geçerli işlevi değiştirmek istiyorsak anahtar kelime.
  • Ve isteğe bağlı bir parametredir.
İşlev
  • Kullandıktan sonra VEYA DEĞİŞTİR anahtar kelimeyi tanımlayabiliriz işlev sonrasında parantez içinde yer alan parametre listesi Fonksiyon adı.
  • Ve bir fonksiyon sıfır veya birden fazla parametre içerebilir.
GERİ DÖNMEK
  • Veri tipini tanımladıktan sonra tanımlayabiliriz. GERİ DÖNMEK fonksiyondan döndüreceğimiz anahtar kelime.
  • Bir tablo sütununun temel, bileşik veya etki alanı türü veya referansı olabilir.
Dil plpgsql
  • Fonksiyonun yürütüldüğü Prosedür dilinin adını tanımlamak için kullanılır.
  • Ve sadece değil plpgsql, PostgreSQL çeşitli prosedür dillerini destekler.
İşlev_gövdesi
  • fonksiyon_body Mantığın çalıştırılabilir kısımlarını içerir.

PostgreSQL Create Function Komutu Örneği

Çalışma şeklini anlamak için farklı bir örnek görelim. PostgreSQL CREATE İşlevi emretmek.

Biz alıyoruz Araba gelen tablo Javatpoint PostgreSQL Eğitiminde oluşturulan veritabanı.

Yeni bir işlev oluşturma

Aşağıdaki komutta, sayan yeni bir fonksiyon oluşturuyoruz. Arabalar kimin Araba_Fiyat arasında Price_from ve Price_to parametreler:

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

get_car_Price fonksiyon iki ana bölüme ayrılmıştır; bunlar Başlık ve İşlev Gövdesi .

Aşağıdaki parametreleri kullandık Başlık bölüm:

  • Öncelikle fonksiyon adını şu şekilde belirliyoruz: get_car_Price(), hangi 'dan sonra yazılır işlev oluştur
  • Bundan sonra, get_car_Price() fonksiyon iki parametre içerir Dan başlayan fiyatlar Ve Fiyat_to, tamsayı veri tipine sahip.
  • Sonra get_car_Price() işlev, return int koşulu tarafından tanımlanan bir tamsayıyı alır.
  • Ve sonunda fonksiyon dilini şu şekilde kullandık: plpgsql .

Aşağıdaki parametreleri kullandık Fonksiyon Gövdesi bölüm:

  • Biz kullandık dolar bazlı dize ile başlayan fonksiyon bölümünde sürekli gösterim $$ ve ile biter $$ .
  • Arasında $$ işaretiyle, kapsayan bir blok yerleştirebiliriz Deklarasyon Ve fonksiyonun mantığı .
  • Bildirim bloğunda, adında bir değişken bildirdik. Araba_sayımı, seçilen arabaların saklandığı yer Araba
  • Blok bölümünün gövdesinde şunu kullandık: İÇİNİ SEÇİN Değerleri arasında olan arabaların fiyatını seçme komutu Price_from ve Price_to ve çıktıyı verin Araba_sayımı
  • Bloğun sonunda şunu kullandık: GERİ DÖNMEK almak için komut

PostgreSQL'de fonksiyon oluşturma

PostgreSQL'de bir fonksiyonu iki şekilde oluşturabiliriz:

    PostgreSQL pgAdmin kullanarak İşlev Oluşturma PostgreSQL, SQL Kabuğu kullanarak İşlev Oluşturma

PostgreSQL pgAdmin kullanarak İşlev Oluşturma

Bir fonksiyon oluşturmak için aşağıdaki süreci takip edeceğiz. pgAdmin:

Aşama 1

Öncelikle son sürümü açacağız pgAdmin yerel sistemimizde nesne ağacına gidip Javatpoint Bir fonksiyon oluşturmak istediğimiz örnek veritabanı.

Adım 2

Bundan sonra sorgulama aracını tıklayarak açacağız. Sorgu aracı Araçlar bölümünü takip etti, aşağıdaki ekran görüntüsünde görebileceğimiz gibi:

dize oluşturucu java
PoatgreSQL Fonksiyonu2

Aşama 3

Oluşturmak için get_car_Price1() fonksiyonumuz için yukarıdaki kodu kullanacağız. sorgu aracı ve tıklayın Uygulamak düğme.

Yukarıdaki komutu uyguladıktan sonra, fonksiyonun gösterildiği aşağıdaki mesaj penceresini alacağız. get_car_Price1() oldu yaratıldı benzer bir veritabanına başarıyla aktarıldı.

PoatgreSQL İşlevi

Ve fonksiyonu tanımlayabiliriz get_car_Price() içinde Fonksiyonlar Aşağıdaki ekran görüntüsünde görebileceğimiz gibi liste:

PoatgreSQL İşlevi

Not: İşlev adını tanımlayamazsak, İşlevler düğümüne sağ tıklayıp Yenile... menü öğesini seçerek işlev listesini yeniden canlandırabiliriz:

PoatgreSQL İşlevi

SQL Shell(psql) kullanarak fonksiyon oluşturma

Tablo oluşturmak için aşağıdaki süreci takip edeceğiz. psql :

Aşama 1

  • İlk olarak, açacağız psql Yerel sistemimizde fonksiyon oluşturmak istediğimiz veritabanına bağlanacağız.
  • İçinde bir tablo oluşturacağız javatpoint Daha önce PostgreSQL eğitiminde oluşturduğumuz veritabanı.

Adım 2

  • Bir veritabanına bağlanmak için aşağıdaki komutu gireceğiz:
 c javatpoint 

Çıktı

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktıyı alacağız:

PoatgreSQL İşlevi

Not: Bir işlev oluşturmak için yukarıdakine benzer bir komutu psql'de girersek, aşağıdaki hatayı verecektir: get_car_price işlevi aynı argüman türleriyle zaten mevcut.

PoatgreSQL İşlevi

Bu nedenle, bu hatayı çözmek için şu şekilde yeni bir fonksiyon oluşturuyoruz: get_car_Price1 () sonraki adımda.

Aşama 3

ROM

Bir fonksiyon oluşturmak için aşağıdaki komutu gireceğiz gibi get_car_Price1 () içinde javatpoint veri tabanı.

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

Çıktı

Yukarıdaki komutu uyguladığımızda aşağıdaki çıktıyı elde edeceğiz; get_car_Price_count1() fonksiyon başarıyla oluşturuldu.

PoatgreSQL İşlevi

4. Adım

Mevcut veritabanındaki tüm kullanıcı tanımlı fonksiyonları listelemek için aşağıdaki komutu kullanabiliriz.

 javatpoint=# df 

Çıktı

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktıyı alacağız:

PoatgreSQL İşlevi

Kullanıcı tanımlı bir işlev nasıl çağrılır

PostgreSQL'de kullanıcı tanımlı fonksiyonu üç şekilde çağırabiliriz:

    Konumsal gösterim Adlandırılmış gösterim Karışık gösterim

Konumsal gösterim kullanarak bir işlevi çağırmak

Argümanları parametrelere benzer bir sırayla tanımlamak istersek, aşağıdakileri içeren bir işlevi çağırabiliriz: konumsal notasyon yardım.

bir ağacın ön sipariş geçişi

Anlamak için örnek bir örnek görelim Konumsal Gösterim belirli bir işlevi çağırmak için çalışıyor.

Aşağıdaki örnekte, get_car_price() argümanlar 26000 Ve 70000 , şuna eşdeğerdir: Dan başlayan fiyatlar Ve Price_to parametreler.

 Select get_car_Price(26000,70000); 

Çıktı

Yukarıdaki komutu uyguladığımızda, aşağıdaki dört satırı getiren aşağıdaki çıktıyı elde edeceğiz: araba_fiyatı arasında 26000 ila 70000.

PoatgreSQL İşlevi

Fonksiyonun neredeyse hiç parametresi olmadığında, fonksiyonun yardımıyla bir fonksiyonu çağırabiliriz. konumsal gösterim .

Eğer fonksiyon birden fazla parametre içeriyorsa şunu kullanabiliriz: adlandırılmış notasyon belirli bir işlevi çağırmak için çünkü adlandırılmış notasyon fonksiyon çağrısını daha anlaşılır hale getirecektir.

Adlandırılmış gösterimi kullanarak bir işlevi çağırmak

Aşağıdaki örnekte, çağrı işleminin çalışmasını gösteriyoruz. get_car_Price() adlandırılmış gösterimi kullanan işlev:

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

Çıktı

Yukarıdaki aralığı temel alarak dört satır görüntüleyen yukarıdaki komutu çalıştırdığımızda aşağıdaki çıktıyı elde edeceğiz: araba_fiyatı .

PoatgreSQL İşlevi

Daha önce bahsettiğimiz gösterimde, şu ifadeyi kullandık: => argümanı ayırt etmek isim ve değer .

PostgreSQL, oluşturulan eski sözdizimine izin verir açık := için geriye dönük uyumluluk Aşağıdaki komutta görebileceğimiz gibi:

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

Çıktı

Yukarıdaki komutu çalıştırdıktan sonra, ' komutunu kullandığımız yukarıdaki komutun sonucuna benzer bir çıktı elde edeceğiz. =>' yerine ':=' .

PoatgreSQL İşlevi

Karışık gösterimi kullanarak bir işlevi çağırmak

Bu, gruplandırmadır konumsal ve adlandırılmış notasyonlar.

Çalışma şeklini anlamak için örnek bir örnek görelim. Karışık gösterim kullanarak bir işlevi çağırmak.

İçinde karışık gösterim , kullanamıyoruz Adlandırılmış Parametreler önce Konumsal Parametreler .

Örneğin:

Aşağıdaki komutta kullanacağımız adlandırılmış kavram için Dan başlayan fiyatlar parametre olarak Price_from=>26000, oysa için Price_to parametresini kullandık. konumsal kavram gibi 70000 Aşağıdaki komutta görebileceğimiz gibi:

sipariş sonrası geçiş
 select get_car_Price(Price_from=>26000,70000); 

Çıktı

Yukarıdaki komutu yürüttükten sonra PostgreSQL bir hata veriyor; konumsal argüman adlandırılmış argümanı takip edemez .

PoatgreSQL İşlevi

Yukarıdaki hatayı çözmek için şunu kullanıyoruz: konumsal ve adlandırılmış gösterim için get_car_price() işlevi nerede 26000 temsil etmek için kullanılır Konumsal gösterim; diğer taraftan, Price_to=>70000 temsil etmek için kullanılır adlandırılmış notasyon :

 select get_car_Price(26000,Price_to=>70000); 

Çıktı

Yukarıdaki komutu yürüttükten sonra, aşağıdaki çıktıyı alacağız, bu da arabaları döndürüyor. araba_fiyatı 26000 ila 70000 arasındadır.

PoatgreSQL İşlevi

Genel Bakış

İçinde PostgreSQL işlevi bölümünde aşağıdaki konuları öğrendik:

  • Biz kullandık CREATE İşlevi Belirli bir tablo için kullanıcı tanımlı bir işlev oluşturma komutu.
  • Süreci anladık kullanıcı tanımlı bir işlevin çağrılması gibi farklı notasyonların yardımıyla Konumsal, Adlandırılmış ve Karışık.