MySQL veritabanı yönetim sisteminde, Stored Procedure ve Function yapıları SQL komutlarından yararlanarak veritabanındaki işlemleri daha hızlı ve kolay yürütmeyi sağlar Stored Procedure'lar, SQL kodlarını içeren ve tek bir adla çağrılabilen işlem dizileridir Function'lar ise geriye değer döndürebilen SQL kod bloklarıdır Stored Procedure ve Function'ları çağırmak için CALL statement'ı kullanılır ve parametreleri belirtilir INOUT ve OUT parametreleri kullanılarak Stored Procedure'lar güncellenebilir Stored Procedure'ların versiyon kontrolü yapılabildiği için yeni versiyonlar oluşturulup eski versiyonlara dönülebilir
MySQL veritabanı, işlem yapmak için SQL komutlarını kullanan bir veri yönetim sistemidir. Stored procedure ve function, veritabanındaki işlemlerin daha kolay ve hızlı yapılabilmesini sağlar. Stored procedure, SQL kodları içeren ve tek bir adla çağrılabilen bir işlem dizisidir. Function ise geriye değer döndüren bir SQL kod bloğudur.
MySQL'de stored procedure ve function oluşturmak için CREATE PROCEDURE veya CREATE FUNCTION statement'ları kullanılır. Stored procedure'ların içinde kullanıcı tanımlı değişkenler ve kontrol yapıları kullanılabilir. Function'lar ise veritabanında tekrar tekrar kullanılabildiği için daha modüler bir yaklaşım sunar.
Stored procedure ve function'ların versiyon kontrolü yapılabildiği için yeni versiyonlar oluşturup, eski versiyonlara dönülebilir. Ayrıca, INOUT ve OUT parametreleri kullanılarak stored procedure'lar, döndürdükleri değerlere göre güncellenebilir.
MySQL'de stored procedure ve function'ları çağırmak için CALL statement'ı kullanılır. Adı ve parametreleri belirtilerek çağırılan stored procedure ve function'ların sonuçları veya etkileri sorgu sonucu olarak döndürülür.
Stored Procedure Nedir?
Stored procedure, veritabanı yönetim sistemlerinde kullanılan ve bir SQL sorgusunu içeren kod bloğudur. Bu kod bloğu bir adla çağrılabilen ve bir işlem dizisi olan bir yapıdadır. Stored procedure'lar sık sık kullanılan SQL komutlarının kaydedilmesi ve tekrar tekrar kullanılması için oldukça yararlıdır. Ayrıca, veri güvenliği açısından önemli bir rol oynarlar.
Stored procedure'lar, veri güncellemesinin yanı sıra veri silme, arama ve ekleme işlemlerinin yapılmasında da oldukça etkilidirler. Örneğin, bir web uygulamasında kullanıcının hesap ayarlarının güncellenmesi için kullanılan SQL sorguları bir stored procedure içine yerleştirilir ve bu işlem tek bir adla çağrılabilir hale getirilir.
Böylece, hem veritabanı yönetimi hem de web uygulamaları yönetimi kolaylaşır. Stored procedure'ların kullanımı, veri yönetiminde esneklik sağlayarak verilerin daha hızlı ve güvenli bir şekilde işlenmesini mümkün kılar.
Function Nedir?
Function Nedir?
Function, veritabanı işlemlerinde tekrar tekrar kullanılabilecek ve geriye bir değer döndüren SQL kod bloklarıdır. Genellikle matematiksel işlemler, tarih ve saat hesaplamaları gibi özel işlemler için kullanılırlar. Function oluşturulduktan sonra, veritabanında bir adı olur ve bu adı kullanarak function'ı çağırabilirsiniz.
Function'ın kullanımı, stored procedure'lar kadar yaygın olmasa da bazı avantajları vardır. Function, sorguda kullanılabileceği gibi, sorgunun bir alanı olarak da kullanılabilir. Function'lar, bir programlama dili işlevi gibi kullanılabilir ve bir sorguda kullanılırken, daha kolay bir şekilde yönetilebilir.
Function'lar, veritabanındaki işlemleri daha modüler hale getirirler ve kod tekrarını önlerler. Bu nedenle, önemli olan veritabanı işlemlerinde function'ların doğru şekilde kullanılmasıdır. Function oluşturulurken, parametreler belirtilir ve geriye döndürülecek olan veri tipi belirtilir.
Bir function oluşturmak için, CREATE FUNCTION statement'ı ve function adı belirtilir. Daha sonra, function'ın SQL kodları ve dönüş değeri tanımlanır. Ayrıca, function'ın versiyon kontrolü yapılarak güncellenmesi veya eski versiyonlara dönülmesi mümkündür.
Stored Procedure Oluşturma
MySQL'de stored procedure oluşturmak için CREATE PROCEDURE statement'ı kullanılır. Oluşturulacak procedure'ın adı, parametreleri ve içinde çalışacak SQL kodları belirtilir. 'CREATE PROCEDURE' anahtar kelimesi kullanıldıktan sonra procedure'ın adı belirtilir. Ad belirlendikten sonra, parametreler parantez içinde belirtilir. Parametreler isteğe bağlı olmakla birlikte, procedure'ın verimli bir şekilde çalışabilmesi için tanımlanması önerilir.
Procedure'ın içinde çalışacak SQL kodları BEGIN-END bloğunun içine yazılır. Bu blok içindeki SQL kodları, procedure'ın çalıştığı her seferinde otomatik olarak çalışır. İşlemlerinizin belirli sebeplerden dolayı başarısız olabileceğini unutmamalısınız. Bu nedenle BEGIN-END bloğu içinde başarısızlık durumlarında hangi hataların döndürüleceği belirtilmelidir.
Ayrıca, procedure'lar oluşturulurken INOUT ve OUT parametreleri de belirlenebilir. INOUT parametreleri, procedure'ın içinde değeri güncellenebilen bir parametredir. OUT parametreleri ise, procedure'ın sonucunu döndürmek için kullanılır. Bu parametreler kullanımınıza bağlı olarak belirlenebilir ya da tamamen atlanabilir.
CREATE PROCEDURE statement'ı bir stored procedure oluşturduktan sonra, procedure çağırılabilecek hale gelir. Procedure'ı çağırmak için CALL statement'ı kullanılır ve adı ve parametreleri belirtilir.
Stored procedure'lar, veritabanında kodun yeniden kullanılabilirliğini ve yönetimini arttırır. Ayrıca güvenlik açısından da faydalıdır. Çünkü bu sayede SQL kodları doğrudan çalıştırılmak yerine procedure üzerinden çalıştırılır. Stored procedure'lar sayesinde SQL kodlarınızı daha hızlı ve düzenli bir şekilde yönetebilirsiniz.
INOUT Parametreleri Nedir?
INOUT parametreleri, stored procedure'ların içindeki değerlerin güncellenebilmesini sağlayan bir tür parametredir. Bu parametreler, stored procedure içindeki SQL kodları tarafından değiştirilebilir ve en sonunda güncellenmiş değeri döndürürler. Stored procedure oluştururken, INOUT parametreleri de kullanarak belirli değerlerin güncellenmesini hedefleyebilirsiniz. INOUT parametreleri tanımlarken, öncelikle parametre adını ve tipini belirtirsiniz. Daha sonra keyword olarak INOUT kullanarak, parametrenin INOUT türünde olduğunu belirtirsiniz.
Bir örnek üzerinden daha detaylı açıklamak gerekirse, bir müşterinin aldığı ürünlerin toplam fiyatını hesaplayan bir stored procedure var diyelim. Bu stored procedure, müşterinin ID'si ve aldığı ürünlerin IDsini parametre olarak alacak. Ancak, ürünlerin fiyatları değişebileceği için, INOUT türünde bir parametre kullanarak toplam tutarı güncellemek isteyebilirsiniz. Bu durumda, stored procedure içindeki SQL kodları, ürün fiyatlarının değiştiği durumlarda INOUT parametresinde belirtilen toplam tutarı otomatik olarak güncelleyecektir.
OUT Parametreleri Nedir?
OUT Parametreleri Nedir?
Stored procedure'lar bazen bir sonuç değeri döndürmek isteyebilir. Bu durumda OUT parametreleri kullanılır. OUT parametreleri, stored procedure'ın sonucunu belirtmek için kullanılır ve değeri döndürebilirler. Aslında, bu, prosedürün çalışması sırasında bir değer döndürmek için en iyi yoldur.
Bir OUT parametresi belirtmek için, önceden belirtildiği gibi, STORED PROCEDURE ifadesini kullanmanız gerekir. Bu parametre için açıklanacak iki tipte vardır:
Türü | Açıklama |
---|---|
INOUT | Bu tanımlayıcı zamanda hem okunabilir hem de yazılabilir. Bu, prosedürün içinde değeri güncelleyebilirsiniz. |
OUT | Bu tür, sadece prosedürün sonucunu belirtmek için kullanılır. Diğer bir deyişle, değeri yazarken yalnızca bir prosedür döndürülür. |
OUT parametreleri, procedural kodun yapısını basitleştirmeleriyle kaybedilebilen karmaşık işlemleri gerçekleştirir. Kodu düzenlemek için OUT parametreleri kullanmak için, kodunuzu bir adım öteye taşıyarak daha düzenli bir kod elde edebilirsiniz.
Function Oluşturma
Function oluşturmanın önemli birincil adımı, CREATE FUNCTION statement'ını kullanarak fonksiyonun adını, parametrelerini, SQL kodlarını ve dönüş değerini belirlemektir. Function'ın adı, CREATE FUNCTION statement'ında belirtilir ve parametreler, parametre adı ve veri türünü belirten bir listede belirtilir. SQL kodları, BEGIN ve END arasında belirtilir ve dönüş değeri ise RETURNS ile belirtilir.
Function'ların oluşturulmasında dikkat edilmesi gereken önemli bir konu, veritabanının uyumlu olduğundan emin olmaktır. Veri türleri, kullanılan veritabanına göre değişebilir ve fonksiyonun uygun şekilde çalışması için bu farklılıklara dikkat edilmelidir.
Function'lar, veritabanında tekrar tekrar kullanılabilir ve geriye değer döndürürler. Bu nedenle, SQL kodlarının iyi hazırlanmış ve hatalardan arındırılmış olması gereklidir. Function'lar, birçok farklı işlem için kullanılabilir, örneğin, hesaplamalar yapmak, veri toplamak veya benzer işlemleri kolaylaştırmak için kullanılabilir.
Function oluştururken, SQL kodlarının yanı sıra versiyon kontrolü de yapılabilir. Bu sayede, eski versiyonlara dönülebilir ve yeni fonksiyonlar oluşturulabilir. Function oluşturma işlemi, veritabanı yöneticileri ve programcılar arasında yaygın bir uygulamadır ve veritabanının daha etkili ve verimli yönetimi için büyük bir öneme sahiptir.
Versiyon Kontrolü
Stored procedure ve function'ların versiyon kontrolü yapılabilmesi için farklı yöntemler kullanılabilir. Bunlar genel olarak ikiye ayrılır, ilki version kontrol yazılımları kullanarak yapılmasıdır. Bu yöntemde özel yazılımlar kullanılarak stored procedure ve function'ların değişiklikleri takip edilir ve eski versiyonlara dönülebilir veya yeni versiyonlar oluşturulabilir.
İkinci yöntem ise özel bir tablo ile yapılabilmesidir. Bu yöntemde versiyon kontrolü için özel bir tablo oluşturulur ve stored procedure ve function'ların değişiklikleri bu tablo üzerinden takip edilir. Tablo içinde, her bir stored procedure ve function için bir satır oluşturulur ve değiştirildiği andaki bilgiler buraya kaydedilir. Eski versiyonlara dönülmek istendiğinde, ilgili satır seçilerek eski versiyonu geri getirmek mümkündür.
Hangi yöntemin kullanılacağına karar vermek, projenin gereksinimlerine, ekip büyüklüğüne ve diğer faktörlere bağlıdır. Ancak hangi yöntem kullanılırsa kullanılsın, stored procedure ve function'ların versiyon kontrolü yapılabiliyor olması, projelerin daha kontrollü ve esnek bir şekilde yönetilebilmesine imkan sağlamaktadır.
Stored Procedure ve Function Çağırma
Stored procedure ve function oluşturduysanız, şimdi de onları çağırmayı öğrenmenin zamanı geldi. Bunun için kullanılacak komut, CALL statement'dır.
CALL statement'ı kullanırken, öncelikle çağırmak istediğiniz stored procedure veya function'ın adını belirtmeniz gerekir. Daha sonra, gerekli parametreleri belirtirsiniz. Eğer stored procedure veya function'da INOUT veya OUT parametreleri kullanmışsanız, bu parametreleri de cümle içinde belirtmelisiniz.
Örnek: | CALL myProcedure(10, 'test'); |
---|---|
Açıklama: | myProcedure adlı stored procedure, 10 ve 'test' değerleri ile çağrılmıştır. |
Eğer function çağırıyorsanız, çağırdığınız değeri bir değişkene atamanız gerekir. Bu sayede, function'ın döndürdüğü değeri kullanabilirsiniz.
Örnek: | SET @result = myFunction(10); |
---|---|
Açıklama: | myFunction adlı function, 10 değeri ile çağrılmıştır ve döndürdüğü değer @result adlı değişkene atanmıştır. |
Stored procedure ve function çağırmak oldukça basittir. Gördüğünüz gibi, öncelikle CALL statement kullanarak adı belirtiyoruz. Daha sonra, gerekli parametreleri belirtiyoruz ve eğer function çağırıyorsak, döndürülen değeri bir değişkene atamalıyız.
Örnekler
Bir veritabanında stored procedure ve function oluşturmak oldukça faydalı bir uygulamadır. İşte size birkaç örnek:
Bir bankanın müşterileri için hesap açma işlemini ele alalım. Bunun için müşteri bilgileri ve hesap bilgileri gerekir. Ayrıca hesap numarası da otomatik olarak oluşturulmalıdır. Bu işlem için bir stored procedure oluşturabiliriz.
Ad | Türü | Açıklama |
---|---|---|
Ad | IN | Müşterinin adı |
Soyad | IN | Müşterinin soyadı |
Doğum Tarihi | IN | Müşterinin doğum tarihi |
Adres | IN | Müşterinin adresi |
Hesap Numarası | OUT | Yeni hesap numarası |
Bu örnekte, IN parametreleri müşteri bilgileri için kullanılırken, OUT parametresi hesap numarası için kullanılmıştır. Hesap numarası otomatik olarak oluşturulacak ve stored procedure'dan geriye döndürülecektir.
Bir şirketin çalışanlarına verdiği maaşı hesaplayan bir function örneği ele alalım. Bu function, çalışanın aldığı saat ücretini ve çalışma saatlerini kullanarak maaşı hesaplayacaktır.
Ad | Türü | Açıklama |
---|---|---|
Çalışma Saatleri | IN | Çalışanın haftalık çalışma saatleri |
Saat Ücreti | IN | Çalışanın aldığı saat ücreti |
Maaş | OUT | Çalışanın ödenecek maaşı |
Bu örnekte, IN parametreleri çalışma saatleri ve saat ücreti için kullanılırken, OUT parametresi ödenecek maaş için kullanılmıştır. Function, hesaplama yapıldıktan sonra maaşı geriye döndürür.
Stored procedure ve function oluşturma, veritabanınızda yapacağınız işlemleri daha verimli hale getirebilir ve sık kullanılan işlemleri daha kolay hale getirebilir. Örneklerde verilen stored procedure ve function örneklerini kullanarak kendi veritabanlarınızda benzer uygulamalar yapabilirsiniz.