Mysql Stored Procedure Giriş

Mysql Stored Procedure Giriş,

Bu makalemde,

Stored Procedure Nedir?
Stored Procedure Neden Kullanmalıyız?
Stored Procedure Kullanımı?
Stored Procedure Ürnekleri?

hakkında bilgi vereceğim.

Stored Procedure Nedir?

Kelime anlamı olarak Saklı Yordam anlamına gelir. Teknik olarak ise,
Dışarıdan bir veya birden fazla parametre alan ve aldığı bu parametreler
ile veritabanı iÇinde belli işler yapıp, dışarıya bir veya birden fazla
değer döndüren sql yordamlarıdır.
MySQL 5.0.1 versiyonu ile Mysql”e stored procedure özelliği eklenmiştir.

Stored Procedure Neden Kullanmalıyız?

Stored Procedureler bir program koduyla gönderilecek olan sql kodlarından
Çok daha hızlı Çalışırlar. Üünkü bir stored procedure bir defa derlendikten sonra
(yani Çalışdıktan sonra) execution shema sı Çıkartılır. Bir sonraki kullanımlarda
tekrar tekrar stored procedurenin uygunluğu veritabanı motoru tarafından
kontrol edilmez.(Derlenmez) Ama sizin kod iÇinde gönderdiğiniz sql cümlecikleri
tekrar tekrar kontrolden geÇirileceği iÇin (her defasında derlenir) performans
kaybına sebeb olur.

Stored Procedure kullanımını gerekli hale getiren ikinci faydası ise,
siz procedure yazdığınızda doğruluğunu yazdığınız esnada anlayabilirsiniz.
Üteki türlü programınızda gönderdiğiniz sql kodları Çalışma zamanın da
derlendiği iÇin hataları hemen anlama şansınız yoktur.

Stored Procedure Kullanımı?

CREATE PROCEDURE sp_name ([[ IN | OUT | INOUT ] param_name type[,...]])
    [characteristic ...] routine_body
    LANGUAGE SQL
  | [NOT] DETERMINISTIC
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }
  | COMMENT 'string'

IN : Bu parametre sadece giriş yönündedir.Bu değişkene SP(Stored Procedure)
tarafından değer verilemez.

OUT :Bu parametre sadece Çıkış yönündedir.Bu değişkene SP(Stored Procedure)
tarafından değer atanır, değer alınmaz.

INOUT :Bu parametre hem giriş hem de Çıkış yönündedir. Bu parametre ile
hem SP iÇerisine veri gönderilebilir hem de bu parametreye SP tarafından
değer atanmasına olanak sağlayarak veri döndürmesine olanak verir.

Ürnek: Bu Sp dışarıdan 3 parametre alarak , aldığı parametrelere göre
dört işlemden birini yapıp sonucu döndürecektir.

DELIMITER $$
CREATE PROCEDURE `test`.`dortIslem`(in sayi1 int,in sayi2 int,in islemTipi int)
   BEGIN
	case islemTipi
		when 1 then select sayi1+sayi2;
		when 2 then select sayi1-sayi2;
		when 3 then select sayi1*sayi2;
		when 4 then select sayi1/sayi2;
	else select "1 ile 4 arası bir rakam giriniz.!!!";
	end case;
    END$$

DELIMITER ;

Bu SP’yi Çalıştırmak iÇin ise call() fonksiyonunu kullanacağız;

call dortIslem(20,5,4);
1. parametre 20
2. parametre 5
3. parametre 4

sp iÇindeki case ‘e baktığımızda 4 bölme işlemi yani:

20/5=4 sonuÇ 4 olarak dönecektir.

Yayınlayacağım Mysql Stored Procedure Giriş 2 adlı makalemde
Stored Procedure örneklerini yapacağım.

Bir sonraki makaleler de görüşmek dileğiyle,

Tayfur BÖLER
Database Administrator