MySQL stored procedure (saklı yordam) nedir ve nasıl oluşturulur?

MySQL stored procedure (saklı yordam), belirli işlemleri gerçekleştiren bir SQL kod bloğudur. Bu işlem grubu, tekrar tekrar kullanılabilir ve veritabanı sunucusunda saklanarak ihtiyaç duyulduğunda çalıştırılabilir. Saklı yordamlar, genellikle karmaşık işlemleri basitleştirmek, SQL sorgularını ve işlemlerini modüler hale getirmek veya uygulama ile veritabanı arasındaki etkileşimi azaltmak amacıyla kullanılır. Saklı yordamlar, hem performans iyileştirmesi sağlar hem de kodun bakımını kolaylaştırır.

Saklı Yordamların Avantajları

Stored procedure kullanmanın önemli avantajları arasında kodun tekrar kullanılabilirliği, performans ve güvenlik bulunmaktadır. Bir saklı yordam oluşturulduktan sonra, farklı uygulamalar veya kullanıcılar tarafından tekrar tekrar çağrılabilir. Bu, hem geliştirme süresini kısaltır hem de hata olasılığını azaltır. Performans açısından, saklı yordamlar genellikle sunucu üzerinde daha hızlı çalışır çünkü SQL kodları derlenir ve önceden çalıştırılır. Güvenlik açısından ise, saklı yordamlar sayesinde doğrudan tablolara erişim engellenebilir, böylece kullanıcılar yalnızca belirli işlevlere erişebilir.

Saklı Yordam Oluşturma

MySQL’de bir saklı yordam oluşturmak için “CREATE PROCEDURE” komutu kullanılır. Bu komutun temel yapısı aşağıdaki gibidir:

“`sql
CREATE PROCEDURE procedure_name (parameters)
BEGIN
— SQL statements
END;
“`

procedure_name kısmı, oluşturulacak saklı yordamın adını belirtir. parameters kısmı, prosedürün alacağı parametreleri tanımlar. Bu parametreler, saklı yordamın daha esnek çalışmasını sağlar. Bir veya daha fazla parametre tanımlanabilir ve bunlar girdi olarak ya da çıktı olarak kullanılabilir.

Örnek: Basit Bir Saklı Yordam Oluşturma

Aşağıda, basit bir saklı yordamın nasıl oluşturulacağı ve kullanılacağına dair bir örnek bulunmaktadır. Bu örnekte, bir kullanıcının adını alıp, “Hello, [UserName]” şeklinde bir çıktı veren bir saklı yordam oluşturulacaktır.

“`sql
DELIMITER //

CREATE PROCEDURE greet_user(IN username VARCHAR(50))
BEGIN
SELECT CONCAT(‘Hello, ‘, username) AS greeting;
END //

DELIMITER ;
“`

Bu prosedür greet_user adını taşımakta ve bir giriş parametresi olan username alarak bu kullanıcının selamlanmasını sağlayan bir SQL sorgusu içermektedir. Saklı yordamın bitiminde kullanılan DELIMITER komutu, MySQL’in SQL komutlarını ayırt etmesini sağlar.

Saklı Yordamı Çağırma

Oluşturulan saklı yordamı çağırmak oldukça basittir. Aşağıdaki örnekte, daha önce oluşturulan greet_user saklı yordamı çağrılmaktadır:

“`sql
CALL greet_user(‘Ahmet’);
“`

Bu çağrıda, ‘Ahmet’ parametresi prosedüre gönderilir ve çıktı olarak “Hello, Ahmet” mesajı döner.

Parametre Türleri

Saklı yordamlar, üç farklı tipte parametre alabilir: IN, OUT ve INOUT.

– IN parametreleri, saklı yordama girilen verilerdir ve yalnızca prosedür içinde kullanılır. Bu, yukarıdaki örnekteki username parametresidir.
– OUT parametreleri, saklı yordamın çıktısı olarak kullanılır ve prosedürdeki değişiklikleri çağıran kısma geri gönderir.
– INOUT parametreleri ise hem giriş hem de çıkış için kullanılabilir; bu, parametrenin prosedür içinde değiştirileceği anlamına gelir.

Hata Yönetimi

Saklı yordamlar çalıştırıldığında hata meydana gelebilir. MySQL’de hata yönetimi için DECLARE komutu ile hata türleri tanımlanabilir ve HANDLER ile hata durumları için özel işlemler belirtilebilir. Aşağıdaki örnek, hata durumunda nasıl bir geri bildirim yapılabileceğini göstermektedir:

“`sql
CREATE PROCEDURE example_with_error_handling()
BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
SET @error_message = ‘Bir hata meydana geldi.’;
END;

— Hatalı bir SQL komutu
SELECT FROM nonexistent_table;
END;
“`

Saklı Yordamların Yönetimi

Saklı yordamlar, oluşturulduktan sonra kullanılabilir durumdadır. Bunları listelemek için `SHOW PROCEDURE STATUS` komutu kullanılabilirken, bir saklı yordamı silmek için ise `DROP PROCEDURE procedure_name` komutu kullanılmalıdır.

Saklı yordamlar, veritabanı uygulamalarında önemli bir rol oynamaktadır. Performans iyileştirmesi sağlaması, kodun tekrar kullanılabilirliği ve güvenliği artırması nedeniyle yaygın olarak tercih edilir. Doğru şekilde kullanıldığında, veritabanı yönetimi süreçlerini önemli ölçüde kolaylaştırır.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR