MySQL veritabanında Parametresiz Stored Procedure Oluşturma
MySQL veritabanı işlemleri yaparken MySQL'in profesyonel editörü olan MySQL Workbench kullanıyoruz. Bu editörü MySQL web sitesinden ücretsiz indirebilirsiniz. Web tabanlı bir editör olarak PhpMyAdmin de kullanabilirsiniz. PhpMyAdmin'in eski sürümlerinde stored procedure oluşturma özelliği yok ama yeni sürümlerde bulunmaktadır.
MySQL veritabanında önce personeldb adında bir schema(veritabanı) oluşturup, içinde tblpersonel isimli bir tablo tanımlıyoruz. Bu tablomuz aşağıdaki gibi alanlardan oluşuyor. Burada personelID alanı Primary Key(Birincil Anahtar) ve AI(Auto Increment- Otomatik Artan) olarak işaretlenmesine dikkat ediyoruz. Diğer alanlarımız olan ADI, SOYADI, TCKIMLIK ve TELEFON alanları VARCHAR(45) yani karakter tipinde. MAAS alanı ise sayısal veri alacağımız DECIMAL tipinde. DECIMAL(15,2) yaparak maksimum 15 hane ve virgülden sonra 2 kuruş hanesi koyacağımızı belirtiyoruz.
Önemli bir not: Türkçe karakterlerin düzgün çıkması için veritabanı oluştururken mutlaka Collation kısmını utf8_turkish_ci olarak ayarlayınız. Aksi taktirde MySQL varsayılan olarak Latin1 dil sisteminde veritabanını oluşturacak ve Türkçe karakter sorunu yaşayacaksınız. Örneğin aşağıda Oğuzhan TAŞ gibi isimlerde problemli bir görünüşle karşılaşacaksıınz. Şayet Collation parametresini ayarlamayı unutursanız, bu veritabanı içinde oluşturduğunuz tüm tablolar ve alanlar latin1 sistemine göre ayarlanacak ve teker teker düzeltmeniz gerekecektir.
MySQL veritabanında önce personeldb adında bir schema(veritabanı) oluşturup, içinde tblpersonel isimli bir tablo tanımlıyoruz. Bu tablomuz aşağıdaki gibi alanlardan oluşuyor. Burada personelID alanı Primary Key(Birincil Anahtar) ve AI(Auto Increment- Otomatik Artan) olarak işaretlenmesine dikkat ediyoruz. Diğer alanlarımız olan ADI, SOYADI, TCKIMLIK ve TELEFON alanları VARCHAR(45) yani karakter tipinde. MAAS alanı ise sayısal veri alacağımız DECIMAL tipinde. DECIMAL(15,2) yaparak maksimum 15 hane ve virgülden sonra 2 kuruş hanesi koyacağımızı belirtiyoruz.
Önemli bir not: Türkçe karakterlerin düzgün çıkması için veritabanı oluştururken mutlaka Collation kısmını utf8_turkish_ci olarak ayarlayınız. Aksi taktirde MySQL varsayılan olarak Latin1 dil sisteminde veritabanını oluşturacak ve Türkçe karakter sorunu yaşayacaksınız. Örneğin aşağıda Oğuzhan TAŞ gibi isimlerde problemli bir görünüşle karşılaşacaksıınz. Şayet Collation parametresini ayarlamayı unutursanız, bu veritabanı içinde oluşturduğunuz tüm tablolar ve alanlar latin1 sistemine göre ayarlanacak ve teker teker düzeltmeniz gerekecektir.
Bu tablomuza aşağıdaki gibi veriler girdiğimizi düşünelim. Bilgi girerken personelID alanı dışında diğer alanları girebilirsiniz. personelID alanını boş geçiyoruz, zira bu alana veritabanı otomatik olarak sayı verecek, çünkü yukarıda AI(Auto Increment) olarak tanımladık. Verileri girdikten sonra altta bulunan Apply(Uygula) düğmesine tıklıyoruz.
Parametresiz Stored Procedure Yazma
Personel tablomuzda bütün personellerin aldıkları maaş ortalamasını döndüren parametresiz bir saklı yordam yazalım.
CREATE DEFINER=`root`@`localhost`
PROCEDURE `personel_maas_ortalama`()
BEGIN
select avg(maas) from tblpersonel ;
END
Burada BEGIN (Başla) ve END(Bitir) bloğu içerisinde komutlarımızı yazıyoruz. Burada sadece basit bir SQL komutu yazdık, fakat bir programlama dilinde gördüğünüz kavramların hepsini kullanabiliriz. Örneğin değişken tanımlamalar, şart yapıları ve döngüler yer alabilir.
Oluşturduğumuz saklı yordamı çağırmak için de Query ekranında aşağıdaki şekilde bir komut veriyoruz.
CALL personeldb.personel_maas_ortalama();
Burada stored procedure çağırırken ilk önce CALL(çağır) komutunu kullanıyoruz, daha sonra veritabanı adını yazıp nokta koyduktan sonra prosedür adını yazıyoruz. Tıpkı programalama dillerinde fonksiyon kullanır gibi parametre almıyorsa sadece parantez açıp kapatıyoruz.
Şimdilik bu kadar, Stored Procedure ile ilgili yazılarımıza devam edeceğiz. Parametreli stored procedure tanımlamayı ve çağırmayı da sonraki yazımızda işleyeceğiz.
PHP web programlama dili ile MySQL'de oluşturulan bir stored procedure'ü çağırma işlemini aşağıdaki yazımdan takip edebilirsiniz.
Parametresiz Stored Procedure Yazma
Personel tablomuzda bütün personellerin aldıkları maaş ortalamasını döndüren parametresiz bir saklı yordam yazalım.
CREATE DEFINER=`root`@`localhost`
PROCEDURE `personel_maas_ortalama`()
BEGIN
select avg(maas) from tblpersonel ;
END
Burada BEGIN (Başla) ve END(Bitir) bloğu içerisinde komutlarımızı yazıyoruz. Burada sadece basit bir SQL komutu yazdık, fakat bir programlama dilinde gördüğünüz kavramların hepsini kullanabiliriz. Örneğin değişken tanımlamalar, şart yapıları ve döngüler yer alabilir.
Oluşturduğumuz saklı yordamı çağırmak için de Query ekranında aşağıdaki şekilde bir komut veriyoruz.
CALL personeldb.personel_maas_ortalama();
Burada stored procedure çağırırken ilk önce CALL(çağır) komutunu kullanıyoruz, daha sonra veritabanı adını yazıp nokta koyduktan sonra prosedür adını yazıyoruz. Tıpkı programalama dillerinde fonksiyon kullanır gibi parametre almıyorsa sadece parantez açıp kapatıyoruz.
Şimdilik bu kadar, Stored Procedure ile ilgili yazılarımıza devam edeceğiz. Parametreli stored procedure tanımlamayı ve çağırmayı da sonraki yazımızda işleyeceğiz.
PHP web programlama dili ile MySQL'de oluşturulan bir stored procedure'ü çağırma işlemini aşağıdaki yazımdan takip edebilirsiniz.
- Wamp içindeki MySQL ve PhpMyAdmin'in felaketten nasıl kurtarırız?
- Asp.net ile MySQL Veritabanına Kayıt Ekleme
- Asp.net ile MySQL Veritabanına Kayıt Ekleme, Silme, Güncelleme
- Asp.net ile MySQL Veritabanına Kayıt Ekleme
- Asp.net ile MySQL Veritabanına Kayıt Ekleme, Silme, Güncelleme
Mutlu kodlamalar,
Oğuzhan TAŞ
Şubat 2018
Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: C# Programlama Dili ile İlgili Örne...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: Excel hücrelerinde yıldız koyarak b...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?