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ı |
|
[VEYA DEĞİŞTİRİN] |
|
İşlev |
|
GERİ DÖNMEK |
|
Dil plpgsql |
|
İşlev_gövdesi |
|
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
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
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ı.
Ve fonksiyonu tanımlayabiliriz get_car_Price() içinde Fonksiyonlar Aşağıdaki ekran görüntüsünde görebileceğimiz gibi liste:
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:
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:
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.
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.
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:
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 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.
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ı .
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 ':=' .
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 .
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.
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.