VERİ TABANI ve YÖNETİMİ



Benzer belgeler
«BM364» Veritabanı Uygulamaları

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

KULLANICI TANIMLI FONKSİYONLAR (Devam)

KULLANICI TANIMLI FONKSİYONLAR (Devam)

KULLANICI TANIMLI FONKSİYONLAR

VERİTABANI ve YÖNETİMİ

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları

SQL Stored Procedure

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

Veritabanı. SQL (Structured Query Language)

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

SQL e Giriş. Uzm. Murat YAZICI

STORED PROCEDURE LER (Saklı Yordamlar)

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

C Programlama Dilininin Basit Yapıları

VERİ TABANI YÖNETİM SİSTEMLERİ II. 4. SQL PROGRAMLAMADA PROCEDURE ve FUNCTION

BİLİŞİM TEKNOLOJİLERİ

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

PHP ile İnternet Programlama

VERİ TABANI ve YÖNETİMİ

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

SORGULAR. Öğr.Gör.Volkan Altıntaş

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

IN ve NOT IN Tablodaki alan içeriklerine ulaşmak için IN deyimi kullanılır.

SQL TRIGGERS (Tetikleyiciler)

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

Sayfa 1 / 8. Tabo yapıları

Veri Tabanı Tasarım ve Yönetimi

EXISTS VE NOT EXISTS fonksiyonları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

Fonksiyon nedir? <?php $deger = pow(5,3); //625 döndürür echo $deger; echo "<br>", pow(5,3);

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

PostgreSQL ve PL/pgSQL

Oracle da kullanılan veri tipleri:

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

VERİ TABANI YÖNETİM SİSTEMLERİ I

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

ALT PROGRAMLAR BÖLÜM Giriş Alt Programlar Hakkında Genel Bilgiler

Sunum İçeriği. Programlamaya Giriş

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:

ACCESS PLATFORMUNDA SQL

Veritabanı Yönetim Sistemleri İleri SQL

Veri Tabanı Yönetim Sistemleri Bölüm - 7

SQL Komutları (2) Uzm. Murat YAZICI

Bölüm 4: DDL Veri Tanımlama Dili

SELÇUK ÜNİVERSİTESİ BOZKIR MESLEK YÜKSEKOKULU VERİTABANI-II DERSİ FİNAL SINAVI

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Bilgisayar Programlama MATLAB

BİLGİSAYAR PROGRAMLAMA DERSİ

VERİ TABANI YÖNETİM SİSTEMLERİ I

Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

Katma Değer Vergisi Beyannamesinin (2) ekinde verilen Katma Değer Vergisi Kesintisi Yapılanlara Ait Bildirim, Muhasebe IV modülünden hazırlanabilir.

PostgreSQL ve PL/pgSQL

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Bölüm 9. Altprogramlar ISBN

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Eki Öğr. Gör. Murat KEÇECĠOĞLU

ÜNİT E ÜNİTE KONTROL DEYİMLERİ KARAR YAPILARI. IF Deyimi GİRİŞ

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

Veritabanına Uygulanması

Veri Yapıları Laboratuvarı

Pascal Programlama Dili

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

KDV Beyannamesinin ekinde verilen Kısmı Tevkifat Uygulaması Kapsamındaki İşlemlere Ait Bildirim, Muhasebe IV modülünden hazırlanabilir.

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

VERİTABANI. SQL (Structured Query Language)

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Akıllı Kod Desteği. Şekil 1

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

BİL-142 Bilgisayar Programlama II

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Üst Düzey Programlama

Veritabanı Tasarımı. Alt Sorgu Temelleri

C# Metotlar ve Metot Tanımlama

NESNEYE YÖNELİK PROGRAMLAMA

Transkript:

VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü

2 BÖLÜM -10- FONKSİYONLAR

3 Giriş Geçen haftaki derslerimizde Görünümleri (View) ve Stored Procedure (SP) leri öğrendik. Bu hafta ise fonksiyonlar konusunu ele alacağız: Kullanıcı Tanımlı Fonksiyonlar Skaler Kullanıcı Tanımlı Fonksiyonlar Tablo Döndüren Fonksiyonlar

4 10.1. Kullanıcı Tanımlı Fonksiyonlar Fonksiyonlar belli bir sonucu geri döndürmek için tasarlanmış bir veya birden fazla yerde kullanılan yapılardır. Kullanıcı tanımlı fonksiyonlar, tıpkı Stored Procedure ler gibi dışarıdan parametre alabilirler. Aynı zamanda IF ELSE gibi T-SQL in diğer ifadelerinin de kullanılmasına imkan tanırlar.

5 10.1. Kullanıcı Tanımlı Fonksiyonlar (devam) Kullanıcı tanımlı fonksiyonlar, SP ler gibi derlendikten sonra tampon bir belleğe atanır ve daha sonra bu tampon bellekten çağrılarak kullanılabilirler. Bir diğer özelliği de view (görünüm) lar gibi bir tablo şeklinde kayıt döndürebilirler.

6 10.1. Kullanıcı Tanımlı Fonksiyonlar (devam) Bu fonksiyonları, View ve SP lerden ayıran ve özellikle kullanılması gereken durumlar şöyledir: Dışarıdan parametre alan view tanımlanamamaktadır. Fakat böyle bir durum fonksiyonlarda kullanılabilmektedir. SP ler bir sorgunun parçası olarak birkaç durum dışında çalışmazken fonksiyonlar sorguların içerisinde kullanılabilirler. Örneğin sp_helpdb, sp_helptext gibi prosedürler tek başlarına çalıştırılabilirler, fakat bir sorgunun parçası olarak çalıştırılamazlar.

7 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar Skaler fonksiyonlar, bir işlem neticesinde sadece tek bir değer döndüren fonksiyonlardır. SQL içerisinde tanımlı birçok skaler fonksiyon vardır. Matematiksel, karakter, tarih fonksiyonları vb. Örneğin SELECT GETDATE (l) komutu FROM ifadesi olmadan kullanılabilir. Bu tür yani GETDATE ( ) şeklindeki fonksiyonlar skaler fonksiyonlardır. Bazı durumlarda kullanıcılarda bu tür fonksiyonlara ihtiyaç duyabilirler. Örneğin yapılan alışveriş neticesinde sepette kaç ürün olduğunu döndüren fonksiyon skaler bir fonksiyondur.

8 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar Skaler fonksiyonların genel tanımı şöyledir: CREATE FUNCTION [sahip-ismi] fonksiyon_adı ( @parametre_adı veri_türü,. ) RETURNS skaler_veri_tipi AS BEGIN SQL_ifadeleri RETURN skaler_deger veya değişken END

9 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar Örnek: Bir müşteri kodunu girerek müşterinin sepetinde kaç adet ürün olduğunu bulan bir fonksiyon yazalım.

10 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar Yazmış olduğumuz fonksiyona dikkat ettiğimizde RETUNS deyimi ile fonksiyonun integer tipte bir veri döndüreceği anlaşılmaktadır. @Urun_sayisi olarak bir değişken tanımlandı. Daha sonra SQL cümlesinde dışarıdan parametre olarak verilen kullanıcıkod bilgisi ile veritabanındaki kullanicikod bilgisi karşılaştırılarak toplam ürün_sayısı hesaplandı ve @Urun_sayisi değişkenine aktarıldı. RETURN komutu ile elde edilen bu ürün sayısı dışarıya tek bir değer olarak gönderildi.

11 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar Fonksiyonu bir sorgu içerisinde kullanmak isteyelim. Sepetinde 5 ten fazla ürün olan müşterileri bir sorgu yazarak bulalım. Fonksiyonun kullanımı ve SQL cümlesi şöyle olacaktır.

12 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar Örnek-2: Klavyeden girilen iki değerin toplamını gerçekleştiren bir fonksiyon yazınız?

13 10.2. Skaler Kullanıcı Tanımlı Fonksiyonlar Bu fonksiyonu dışarıdan iki sayı girerek çalıştırdığımızda aşağıdaki sonuç elde edilecektir.

14 10.3. Tablo Döndüren Fonksiyonlar Bu tür fonksiyonlar çalışma prensibi bakımından view lara benzerler fakat farklı olarak dışarıdan parametre de alabilirler. Tablo döndüren fonksiyonların genel kullanım biçimi şöyledir. CREATE FUNCTION [sahip-ismi] fonksiyon_adı ( [@Parametre_adı veri_tipi,..] ) RETUNS TABLE AS RETURN (SELECT cümlesi)

15 10.3. Tablo Döndüren Fonksiyonlar (devam ) Örnek-1: Dışarıdan ürün kodu girilen bir ürünün bilgilerini tablo içerisinde arayarak ekrana listeleyen bir fonksiyon yazınız? tblurun tablosu yan tarafta verilmiştir.

16 10.3. Tablo Döndüren Fonksiyonlar (devam ) Yazılması gereken fonksiyon aşağıdaki gibidir.

17 10.3. Tablo Döndüren Fonksiyonlar (devam ) Yazılan fonksiyon incelendiğinde RETURNS TABLE ifadesi ile bir tablo döndürüleceği belirtilmiştir. Daha sonra RETURN ifadesinde yazılmış olan SELECT cümlesi ile kullanıcıya geri döndürülmesi gereken kayıtlar sorgulanarak gönderilmiştir. Fonksiyonun çalıştırılması şöyledir.

18 10.3. Tablo Döndüren Fonksiyonlar (devam ) Örnek-2: Genellikle E-ticaret sitelerinde yer alan ve bir ürünü alanlar bunları da satın aldı şeklinde karşımıza çıkan ürünlerin listesi yer almaktadır. Aynı şekilde bir kullanıcı kodu kullanarak böyle bir liste oluşturacak bir fonksiyon yazalım. Bunun için gerekli olan tablolar şunlardır. tblurun: Ürün bilgilerinin yer aldığı tablodur. tblsiparisdetay: Sipariş detaylarının yer aldığı tablodur. tblsiparis: Siparişi verilen ürünlerin tutulduğu tablodur.

19 10.3. Tablo Döndüren Fonksiyonlar (devam ) Bu tablolar aşağıda verilmiştir.

20 10.3. Tablo Döndüren Fonksiyonlar (devam ) Bu işlem iki aşamalıdır. Yani iki ayrı fonksiyon yazılmalıdır. Bunlardan birincisi şöyledir: CREATE FUNCTION AlanlarinKodu(@urunKod int) RETURNS TABLE AS RETURN SELECT kullanicikod FROM tblsiparisdetay SD INNER JOIN tblsiparis S ON S.faturaKod=SD.faturaKod WHERE urunkod=@urunkod

21 10.3. Tablo Döndüren Fonksiyonlar (devam ) Bu fonksiyon belli bir ürünü satın alan kullanıcıya ait kullanıcı kodunun bulunmasını sağlamaktadır. Buradan elde edilecek olan kullanıcı kodu yazılacak olan ikinci fonksiyonda kullanılacaktır. Bu fonksiyon tek başına çalıştırılırsa aşağıdaki sonuç elde edilecektir.

22 10.3. Tablo Döndüren Fonksiyonlar (devam ) İkinci yani asıl fonksiyonumuz ise şöyle olacaktır. CREATE FUNCTION BunuAlanBunlariAldi(@urunKod int) RETURNS TABLE AS RETURN SELECT U.urunKod,U.urunAd FROM tblurun U JOIN tblsiparisdetay SD ON SD.urunKod=U.urunKod JOIN tblsiparis S ON S.faturaKod=SD.faturaKod JOIN AlanlarinKodu(@urunKod) FNA ON FNA.kullaniciKod=S.kullaniciKod

23 10.3. Tablo Döndüren Fonksiyonlar (devam ) Bu fonksiyonda ise ürün kodu girilerek bu ürünü alan kişinin başka hangi ürünleri aldığı listelenmektedir. Burada tblurun ve tblsiparisdetay tabloları kullanılarak siparişi verilen ürünler tespit edilmiştir. Ardından tblsiparis tablosu ve elde edilen bu liste faturakod değerleri kullanılarak birleştirilmiştir. Elde edilen yeni liste kullanıcı kodlarına bakılarak bu listede hangi kullanıcının hangi ürünü satın aldığı tespit edilmiştir.

24 10.3. Tablo Döndüren Fonksiyonlar (devam ) Bu kodun çalıştırıldığında 2627 ürün koduna sahip ürünü alan kişinin başka hangi ürünleri satın aldığı listelenmektedir.