Saklı Prosedürler (Stored Procedures) kalibi Create Procedure Procedure_Adi [Parametre_Listesi] As Procedure_Bloğu Create Proc Procedure_Adi [Parametre_Listesi]

Slides:



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

T sql-diğer komutlar Metin Akbulut.
SQL Komutlar 5 Sibel SOMYÜREK.
VERİ TABANI ve YÖNETİMİ
Alt Sorgular Veritabanı 2.
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.
SQL (STRUCTURED QUERY LANGUAGE)
VIEW (BAKIŞ) OLUŞTURMA
ÖRNEKLER. musteri Id adi soyadi mus_satis Id barkod adet Urunlar barkod urun_adi kodu fiyati Stok_hareket tarih barkod gelen giden.
SQL Sibel SOMYÜREK.
SQL SERVER STORED PROCEDURE
SQL Komutları (2) Uzm. Murat YAZICI.
FONKSİYONLAR İbrahim Onur Sığırcı.
RAISE RECORD/CURSOR TRIGGER
Bilgisayar Mühendisliği Bölümü
Bilgisayar Mühendisliği Bölümü
SİSTEM VERİTABANLARI. Sistem veritabanlarını tanıma. Kendi Login’imizi oluşturma Neler İşleyeceğiz?
Yeni Veritabanı Oluşturma
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.
Veri Tabanı Yönetimi Dersi 4. Laboratuvarı Arş. Gör. Pınar CİHAN.
EurobankTekfen SQL Server DBA Turgay Sahtiyan.
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.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
 Stored Procedure kısaca SQL sorgularını isteğimize göre hazırlayıp kullanıma hazır veri tabanı nesnesine çeviren bir araçtır.  Stored Procedure, Türkçeye.
BİLGİSAYAR PROGRAMLAMA DERSİ
Excel 2007.
BÖLÜM 9 VERİ TABANI NESNELERİ.
FONKSİYONLAR.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
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ı
VIEW lerle çalışmak 11.BÖLÜM.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Transaction ve Örnekler
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
© 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.
5. HAFTA Öğr. Gör. Yunus KÖKVER
SQL SERVER STORED PROCEDURE
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
3.hafta METODLAR.
Bölüm 7 İfadeler ve atamalar.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
FONKSİYONLAR İbrahim Onur Sığırcı.
RAISE RECORD/CURSOR TRIGGER
Bilgisayar Bilimi Koşullu Durumlar.
SQL (STRUCTURED QUERY LANGUAGE)
Stored Procedure Öğr.Gör.Metin Akbulut.
SQL Server - Triggers.
SQL Server - Stored Procedures
Fonksiyonlar ve Alt Programlar
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
SQL Server - Views.
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-4-DML
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
SQL VIEW.
Sunum transkripti:

Saklı Prosedürler (Stored Procedures) kalibi Create Procedure Procedure_Adi [Parametre_Listesi] As Procedure_Bloğu Create Proc Procedure_Adi [Parametre_Listesi] As Procedure_Bloğu

Saklı Prosedürler (Stored Procedures) cagirilmasi Execute (Saklı Prosedür Adı) [parame1, parametre 2 …]

Saklı Prosedürler OUTPUT PARAMETERS : Stored Procedure'ler OUTPUT parametrelerle dışarıya değer döndürebilir. Dışarıya dönen bu değer çoğu zaman programcının diğer işlemlerinde kullanılabilmek ya da matematiksel hesaplamaların sonuçlarını öğrenmek amacıyla kullanılırlar. Parametre tanımlanmaları Input parametrelerdeki gibi olmakla beraber tek fazlası hem Stored Procedure'ün oluşturulma tarafında hem de Execute tarafında dışarıya değer döndürecek parametrenin yanına OUTPUT yazılmasıdır. Ayrıca, Execution tarafında OUTPUT ifadesi yazılmaz ise stored procedure sorunsuz çalışacak fakat dışarıya bir değer döndürmeyecektir. Ayrıca, ek olarak; Output olacak parametreler tanımlanırken veritiplerinin "text" ve "image" olmaması gerektiği unutulmamalıdır. Output parametreler kullanarak bir matematiksel bir örnek verelim :

Saklı Prosedürler OUTPUT PARAMETERS : CREATE PROC decimal OUTPUT AS = GO

Saklı Prosedürler return Önce procedure’ümüzü biraz degistirelim. Ayni ad ve soyadda baska biri varsa kayit yapmasin ve geriye 0 degeri döndürsün. Eger yoksa kayit yapsin ve bize 1 degeri döndürsün. CREATE PROCEDURE sp_Deneme_Ekle NVARCHAR(20)) AS int int count(*) from DENEME_TABLO where and SOYAD = 0) begin INSERT INTO DENEME_TABLO(AD,SOYAD) = 1 end else begin =0 end GO

trigger Create trigger trigger isim on İşlemYapılanTabloİsmi after veya for delete,update,insert as Kodlar

trigger Bir tabloda insert,delete ve update işlemleri gerçekleştiğinde devreye giren yapılardır. Bu işlemler sonucunda veya bu işlemler sürerken devreye girerler

After ile trigger CREATE TRIGGER bot_trigger ON bot --hangi tablo uzerinde calisacagi With Encryption after update,delete,insert-- insert update delete AS print 'islem' go

For ile trigger CREATE TRIGGER bot ON bot --hangi tablo uzerinde calisacagi for update,delete,insert-- insert update delete AS print 'islem' go

INSTEAD OF TRIGGERLAR Delete,update ve insert işlemleri yerine şu işlemleri yap, gibisinden bir amaca hizmet ederler. Şimdi aşağıdaki örnek triggerı inceleyiniz.Delete işlemi yapıldığın da çalışacak olan trigger,aslında delete işlemi yapmayacaktır.Onun yerine as komutundan sonraki işlemi yapacaktır. CREATE TRIGGER botkisitla ON bot --hangi tablo uzerinde calisacagi instead of update,delete,insert-- insert update delete AS print 'islemengellendi' go

View Nedir? SQL de, View temel olarak sanal tablo(geçici ile sanal tablo farklı kavramlar lütfen karıştırmayın) diye geçiyor. Satır ve sütunları olan gerçek tablo gibidir. İçerisinde sadece SQL Fonksiyonlarını, Join, Group By ve Where ifadelerini kullanabilirsiniz. Yapamadıkları yaptıklarından daha az bu yapamadıklarını yazımın en son bölümünde yer vereceğim. (örnekleri hayali tablolar üzerinde anlatacağım). SQL Query açıp aşağıdaki örnek kodları yazıp daha sonra execute,kısayolu f5, ettikten sonra çalışmış olacaktır.

kalip CREATE VIEW view_adi AS SELECT sütun_adları FROM tablo_adlari

CREATE VIEW OnSekizYasindanBuyukKullanicilar AS SELECT kullaniciAdi, YasadigiYer,Yas FROM Kullanicilar WHERE Yas>17

Şifreli View Oluşturma (With Encryption) CREATE VIEW SifreliView With Encryption AS SELECT kullaniciAdi, YasadigiYer,Yas FROM Kullanicilar WHERE Yas<17

create view botdenizci1 With Encryption as select b.b_adi,d.d_adi,d.yasi,d.derece,b.rengi,r.gun from bot b, denizci d, rezerve r where r.bid=b.bid and r.did=d.did

View Güncelleştirme (Alter View) Güncelleştirmek için alter ifadesinden sonra güncelleştirmek istediğimiz türü seçiyoruz burada view oluyor ve en son olarak View adını yazıyoruz. Kodları değiştirten sonra çalıştırmayı unutmayın. ALTER VIEW OnSekizYasindanBuyukKullanicilar AS SELECT kullaniciAdi, Yas FROM Kullanicilar WHERE Yas>17 View Silme (Drop View) Aslında Create, Alter, Drop SQL ifadeleri olduğu için tablo, view, fonsiyon, procedur işlemlerinde aynı şekide kullanılıyor, yani view e özel durum söz konusu değil. DROP VIEW OnSekizYasindanBuyukKullanicilar

View larda Ne Yapılmaz Yukarıda söylediğim gibi aslında view lerin yapamadıkları daha fazla. Order By kullanamazsınız. İsimsiz kolon bırakamazsınız. Örneğin Sum fonsiyonunu kullanacaksınız As ile kesin bir isim vermek zorundasınız. Birden fazla sorgu yazamazsınız yani sadece bir select ile başlayan bir cümle yapabilirsiniz. T-SQL kullanamazsınız Insert, Update veya Delete kullanamazsınız Herhangi bir parametre yollayamazsınız.

Scalar Functions Scalar functions tek bir değer döndüren fonksiyonlardır. Parametre olarak Color değerini alan ve rengi paremetre olarak belirttiğimiz ürünlerin kayıt sayısını döndüren bir scalar function gerçekleştirelim;

kalip CREATE FUNCTION fonsiyonismi(gerekli degisken adlari)RETURNS donecekveritipi AS BEGIN T-sql ve sql komutlari yazilir end

CREATE FUNCTION NVARCHAR(20)) RETURNS INT AS BEGIN INT; FROM Production.Product WHERE END SELECT dbo.GetProductCount('Silver') Fonksiyonu çağırmak için şu T-SQL komutunu kullanıyoruz;

CREATE FUNCTION NetMaasHesapla numeric(10,2) ) RETURNS numeric(10,2) AS BEGIN numeric(10,2) IF > 5000) ELSE END

Table-Valued Functions CREATE FUNCTION NVARCHAR(20)) TABLE( ProductID INT PRIMARY KEY NOT NULL, [Name] NVARCHAR(50), Color NVARCHAR(20), ListPrice SMALLMONEY ) AS BEGIN SELECT ProductID,[Name],Color,ListPrice FROM Production.Product WHERE RETURN; END SELECT * FROM dbo.GetProducts('Silver') Table-Valued function’ı kullanmak için şu ifadeyi kullanabiliriz;

CREATE FUNCTION alii int ) RETURNS TABLE AS RETURN ( SELECT d_adi,derece from denizci where ) GO

CREATE FUNCTION aliii9 int ) TABLE ( adi nvarchar(50), derece int ) AS begin SELECT d_adi,derece from denizci where RETURN end GO

Prosedür ile Fonksiyon arasındaki Temel Farklar: Saklı Yordam (SY)Kullanıcı Tanımlı Fonksiyon (KTF) Select ifadesi içinde kullanılamazSelect ifadesi içinde kullanılabilir Genellikle bir işi gerçekleştirmek için kullanılır Genellikle bir hesaplama için kullanılır Değer döndürmesi şart değildirMutlaka değer döndürmelidir Tüm veri türlerini döndürebilirImage gibi bazı veri türlerini döndüremez Daha fazla girdi parametresi alabilir (21000 adet) En fazla 1023 girdi parametresi alabilir Geçici tabloları kullanabilirGeçici tabloları kullanamaz Dinamik SQL yürütebilirDinamik SQL yürütülemez Hata İşleme desteği vardırHata işleme desteği yoktur (RAISEERROR veya kullanılamaz) Non-Deterministik fonksiyonlar kullanılabilir GETDATE() gibi non-deterministik fonksiyonlar kullanılamaz