FONKSİYONLAR İbrahim Onur Sığırcı.

Slides:



Advertisements
Benzer bir sunumlar
Stored Procedure Öğr.Gör.Metin Akbulut.
Advertisements

T sql-diğer komutlar Metin Akbulut.
VTYS Öğr. Gör. Engin DUTAR
SQL Structured Query Language
Verileri gruplayarak analiz
SQL (Structured Query Language)
Kontrol Çevrimleri FOR WHILE DO-WHILE IF-ELSE SWITCH-CASE-DEFAULT
VERİ TABANI YÖNETİMİ Ders 11: PL/SQL’e Giriş
SQL KOMUTLARI.
SQL de Değişken Tanımlama
SQL Komutlar 5 Sibel SOMYÜREK.
VERİ TABANI ve YÖNETİMİ
T-SQL-2.Konu Akış Kontrolleri.
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
10 Gruplandırarak Sorgulama
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
Departman ve Personel Tablosu Soruları
11 ekim 2011 VTYS –II Dersi. Kalıp İfadelerle Sorgu (Pattern) Eğer bir sözel verinin sadece belli kriterlere uyanlarını seçeceksek sütun_adı LIKE kalıp.
SQL Komutlar 3 Sibel SOMYÜREK.
ÖRNEKLER. musteri Id adi soyadi mus_satis Id barkod adet Urunlar barkod urun_adi kodu fiyati Stok_hareket tarih barkod gelen giden.
SQL de Değişken Tanımlama
MySQL Operatörleri ve Fonksiyonları
SQL SERVER 2008 Yücel YILDIRIM.
VeriTabanı Uygulama.
PROGRAM KONTROL VE DÖNGÜ DEYİMLERİ
SQL SERVER STORED PROCEDURE
SQL Komutları (2) Uzm. Murat YAZICI.
RAISE RECORD/CURSOR TRIGGER
Bilgisayar Mühendisliği Bölümü
4. KONTROL VE DÖNGÜ KOMUTLARI
Python Aslı Ergün.
Veri Tabanı Yönetim Sistemleri 2 Ders 5 PL/SQL'e Giriş
Kabuk Programlama Shell Scripting(bash)
SQL’ e Giriş Uzm. Murat YAZICI.
Bilgisayar Mühendisliği Bölümü
K ıSıT -V ıEW -S EQUENCE U NıON -I NTERSECTıON -E XCEPT E XıSTS -I N İbrahim Onur Sığırcı.
C OMPANY DB / Ö RNEKLER İbrahim Onur Sığırcı. İ LIŞKI T ABLOLARı idfnamelnamebdate AhmetDemir MehmetBakır AyşeTunç1994.
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 8. Laboratuvarı Arş. Gör. Pınar CİHAN.
S ORGU / DML / DDL KOMUTLARı İbrahim Onur Sığırcı.
Veri Tabanı Yönetimi Dersi 2. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetim Sistemleri 2 Ders 6 PL/SQL Ek Bilgiler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü.
Veri Tabanı Yönetim Sistemleri 2 Ders 5 PL/SQL'e Giriş, Prosedür ve Fonksiyonlar Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
GROUP BY HAVING ORDER BY İbrahim Onur Sığırcı. Ö RNEK 1 – G RUP F ONKSIYONLARı * «Sales» departmanında kaç kişinin çalıştığını, toplam maaşlarını, en.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Constraint-View-Sequence Union-Intersection-Except Exısts-In Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 5
Bilgisayar Mühendisliği Bölümü
Bilgisayar Mühendisliği Bölümü
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Veri Tabanı Yönetimi Dersi 8. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
TETİKLEYİCİLER ve HATA KONTROLÜ
14.DERS Örnekler, Sorular BUKET DOĞAN.
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
Excel’de VBA Programlama (Visual Basic Application)
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Company DB / Örnekler İbrahim Onur Sığırcı.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
FONKSİYONLAR İbrahim Onur Sığırcı.
GROUP BY HAVING ORDER BY LIMIT
Sorgu / dml / ddl komutları
RAISE RECORD/CURSOR TRIGGER
Stored Procedure Öğr.Gör.Metin Akbulut.
SQL Server - Stored Procedures
Sunum transkripti:

FONKSİYONLAR İbrahim Onur Sığırcı

Postresql prosedür diller PL/pgSQL PL/TcL PL/Perl PL/Phyton

CREATE LANGUAGE plpgsql

Fonksiyonlarin tanimlanmasi CREATE FUNCTION fonksiyon_adı (parametreler) RETURNS çıktının veri tipi AS ' DECLARE tanımlamalar; BEGIN komutlar; RETURN çıktı değeri; END; ' LANGUAGE 'plpgsql';

Declare DECLARE isim tür := ilk_değer; user_id INTEGER; quantity NUMERIC; url VARCHAR(20); my_var tablo.sutunismi%TYPE;

Örnek – 1 Girdi olarak verilen 2 sayının toplamını bulan fonksiyonu yazınız ve (22,63) parametreleri için çalıştırınız. CREATE FUNCTION ornek1 (num1 NUMERIC, num2 NUMERIC) RETURNS numeric AS ' DECLARE toplam NUMERIC; BEGIN toplam :=num1+num2; return toplam; END; ' LANGUAGE 'plpgsql';

Fonksiyonun çaliştirilmasi ve Silinmesi SELECT fonksiyon_adı (parametre değerleri); SELECT ornek1(22,63); DROP FUNCTION fonksiyon_adı (parametre tipleri); DROP FUNCTION ornek1 (NUMERIC, NUMERIC);

Yardimci örnek ‘Hardware’ departmandaki çalışanların ortalama maaşını bulan bir fonksiyon yazınız. SELECT AVG(salary) FROM employee e, department d WHERE e.dno = d.dnumber AND d.dname = ‘Hardware’;

Örnek – 2 Adı verilen bir departmandaki çalışanların ortalama maaşını bulan bir fonksiyon yazınız. CREATE FUNCTION ornek2 (depname department.dname%type) RETURNS real AS ' DECLARE maas NUMERIC; BEGIN SELECT AVG(salary) INTO maas FROM employee e, department d WHERE e.dno = d.dnumber AND d.dname = depname; return maas; END; ' LANGUAGE 'plpgsql';

SELECT ornek2('Hardware') DROP FUNCTION ornek2 (department.dname%type)

Örnek – 1 tekrar (return’süz) Girdi olarak verilen 2 sayının toplamını bulan fonksiyonu yazınız ve (22,63) parametreleri için çalıştırınız. CREATE FUNCTION ornek1 (num1 NUMERIC, num2 NUMERIC, OUT num3 NUMERIC) AS ‘ BEGIN num3:=num1+num2; END; ' LANGUAGE 'plpgsql';

Örnek – 3 Departman tablosundaki minimum ve maksimum departman numarasını bulup min_deptno ve max_deptno değişkenlerine atan fonksiyonu yazınız. CREATE FUNCTION ornek3 (OUT min_deptno department.dnumber%type, OUT max_deptno department.dnumber%type) AS ' BEGIN SELECT MIN(dnumber), MAX(dnumber) INTO min_deptno, max_deptno FROM department; END; ' LANGUAGE 'plpgsql';

SELECT ornek3() DROP FUNCTION ornek3 ()

Yardimci örnek 6 no’lu departmanda çalışanların sayısını bulun SELECT COUNT(*) FROM employee WHERE dno = 6

Örnek – 4 6 no’lu departmanda çalışanların sayısını bulun, çalışan sayısı 10’dan azsa departmandaki tüm çalışanların maaşına %5 zam yapın. CREATE FUNCTION ornek4 () RETURNS void AS ' DECLARE num_worker NUMERIC(3) := 0; BEGIN ……. END; ' LANGUAGE 'plpgsql';

SELECT COUNT(*) INTO num_worker FROM employee WHERE dno = 6 IF (num_worker < 10) THEN UPDATE employee SET salary=salary*1.05 WHERE dno=6; END IF;

SELECT ornek4() DROP FUNCTION ornek4 ()

If-elsif-else IF number = 0 THEN result := 'zero'; ELSIF number > 0 THEN result := 'positive'; ELSIF number < 0 THEN result := 'negative'; ELSE result := 'NULL'; END IF;

case CASE x END CASE; WHEN 1, 2 THEN msg := 'one or two'; WHEN x BETWEEN 3 AND 10 THEN msg := ‘three or four'; ELSE msg := 'other value'; END CASE;

While döngüsü WHILE şart LOOP Kodlar. …… END LOOP;

For döngüsü FOR sayac IN başlangıç..bitiş LOOP Kodlar…… END LOOP; FOR sayac IN başlangıç..bitiş BY kaçar FOR sayac IN REVERSE başlangıç..bitiş BY kaçar

FOR i IN 1. 10 LOOP 1,2,3,4,5,6,7,8,9,10 END LOOP; FOR i IN REVERSE 10 FOR i IN 1..10 LOOP 1,2,3,4,5,6,7,8,9,10 END LOOP; FOR i IN REVERSE 10..1 LOOP 10,9,8,7,6,5,4,3,2,1 FOR i IN REVERSE 10..1 BY 2 LOOP 10,8,6,4,2

Örnek – 5 Verilen bir sayıyı 1 arttıran fonksiyonu yazınız. CREATE FUNCTION increment(t INTEGER) RETURNS INTEGER AS ‘ BEGIN return t + 1; END; ‘ LANGUAGE ‘plpgsql’;