mehmetduran.com - Paylaşmak Güzeldir...
MySql'de Fonksiyon Tanımlama ve Kullanma
Bu yazımda Mysql veritabanında fonksiyon tanımlama ve kullanmayı göreceğiz. Veritabanı ile projeler geliştirdiğimizde kesinlikle ihtiyaç duyacağımız ve kullanacağımız trigger, stored procedure, fonksiyon gibi yapılar projelerimizin daha anlaşılır daha kolay yapıda olmasını sağlıyor. Ayrıca performans kazancı sağlıyor. Bu yazımda da ilk olarak Mysql ile fonksiyon oluşturmayı ve bu fonksiyonu C Sharp ve Asp.net ile kullanmayı göreceğiz.

Öncelikle veritabanımızın yapısını, verileri ve sonunda elde etmek istediğimiz yapıyı aşağıda görebiliriz.

MySql'de Fonksiyon Tanımlama ve Kullanma

Görüldüğü gibi iki adet tablomuz var ve bu iki tablo arasında ilişkili bir bir bölüm var. Biz bir tablodan verileri alırken diğer tablo ile ilişkili alan hakkında bilgiyi ise yazacağımız fonksiyon yardımı ile alacağız. Aslında bu ilişkiyi joinlerle veya programlama kodlarını kullanarak yazacağımız fonksiyonlar ile kurabiliriz. Ama Mysql içinde tanımlayacağımız fonksiyon ile hiçbir ek işleme gerek kalmadan bu ilişkiyi kuracağız ve yukarıda ki sonucu elde edeceğiz. Böylece performans kazancımız olacak, daha az işlem yapmış olacağız.

Öncelikle yukarıdaki işlemi yapacak Mysql fonksiyonunu tanımlamak/oluşturmak için aşağıdaki gibi bir kodlama kullanabiliriz.

  CREATE DEFINER=`root`@`localhost` FUNCTION `meslek_getir`(meslek_no INTEGER) RETURNS varchar(75) CHARSET latin5
  BEGIN
  return (select `meslek` from `meslekler` where `meslek_id`=`meslek_no`);
  END

Daha sonra ise programlama tarafında yukarıda elde ettiğimiz sonuç için gereken sorgumuz ise şöyle olmalı:

    bg = new MySqlConnection("server=localhost; user=root; password=root; database=deneme; charset=latin5");
    // sorgumuzda fonksiyonumuzu çağırıyoruz
    MySqlDataAdapter adaptor = new MySqlDataAdapter("select isim_soyisim as AdSoyad, meslek_getir(meslek_id) as Meslekler from kisiler", bg);
    DataTable tablo = new DataTable();
    adaptor.Fill(tablo);
    GridView1.DataSource = tablo;
    GridView1.DataBind();

Görüldüğü gibi yazdığımız fonksiyon ile birkaç adımda gerçekleşecek işlemi tek adımda yapabiliyoruz. Önümüzdeki günlerde stored procedure ve trigger gibi yapılar hakkında yazılarım olacak.

İyi Çalışmalar!
Mehmet Duran 24 Aralık Çarşamba 2008 2 24634 4,0
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar C Sharp 3.0 in a Nutshell (E-Book) LINQPad Javascript ile Sayaç (Kronometre) Yapımı Jquery ile Basit Birkaç Örnek Uygulama (Karakter Saydırma) Access`i Mysql`e Çevirme (MdbToMySql)
Yorumlar
Yorum Yaz
RSS Yorum Takibi
göksel 19 Temmuz Pazar 2009 19:01 #1
merhaba, MSSQL`de tablo çıkışlı fonksiyonlar tanımlayabiliyoruz fakat MYSQL'de bu tür bir şeye rastlayamadım yardımcı olursanız sevinirim
Mehmet Duran 19 Temmuz Pazar 2009 19:35 #2
Bu konuda MySql`in bir sıkıntısı var sanırım. Ancak tablo alma işlemini fonksiyon değil de procedure ile de yapabilirsiniz. Burada procedure tanımlama ve kullanma hakkında bir yazım var. Umarım işinizi görür.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Hata yapmayan bir insan genellikle hiçbirşey yapmıyordur.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009