SQL saklı yordamlar, bir veritabanında kaydedilen ve saklanan SQL deyimleri kümeleridir. Verileri işleme ve doğrulama görevlerini talep üzerine çalıştırabilir, yaygın işlemler için tekrarlayan SQL kodu yazma gereksinimini azaltır. Saklı yordamlar, verimlilik ve yeniden kullanılabilirliği teşvik ederek veritabanı yönetiminde faydalıdır. Ayrıca, gelişmiş veritabanı güvenliği ve sürdürülebilirliğini desteklerler. Bu yazıda, SQL saklı yordamlarının nasıl oluşturulacağını ve çalıştırılacağını, yaygın kullanım alanlarını ve en iyi uygulamaları ele alacağız.
Başlarken, DataCamp’in Introduction to SQL ve Learn SQL kurslarını almanızı şiddetle tavsiye ederim; SQL kullanarak verileri çıkarma ve analiz etme konusunda temel bilgileri edinirsiniz. Ayrıca, indirilebilir SQL Basics Cheat Sheet en yaygın SQL işlevlerini içerdiği için yararlı bir başvuru kaynağıdır.
SQL’de Saklı Yordam Nedir?
SQL’de saklı yordam, veritabanı içinde kaydedilen ve saklanan SQL deyimlerinin bir koleksiyonudur. SQL saklı yordamının amacı; sorgulama, ekleme, güncelleme veya silme gibi bir dizi işlemi veritabanı üzerinde gerçekleştirmektir.
Ayrı komutlar olarak çalıştırılan normal SQL sorgularından farklı olarak, saklı yordamlar bir dizi SQL deyimini kapsülleterek kodu tekrar tekrar SQL komutları yazmadan yeniden kullanmayı kolaylaştırır.
SQL saklı yordamlarının faydaları şunları içerir:
Kodun yeniden kullanılabilirliği: Bir saklı yordam oluşturulduktan sonra, gerektiği kadar çok kez çağrılabilir; SQL kodundaki gereksiz tekrarları ortadan kaldırır.
Geliştirilmiş performans: Saklı yordamlar sıklıkla daha hızlı çalışır; çünkü önceden derlenir ve veritabanı sunucusunda saklanır; bu da ağ gecikmesini ve derleme süresini azaltır.
Güvenlik: Saklı yordamlar, kullanıcılara tablolara doğrudan erişim vermeden bir saklı yordamı çalıştırma izni tanıyarak veri güvenliğini ve hassas verilere erişim kontrolünü iyileştirebilir.
Temel sözdizimi ve yapı
Bir saklı yordam oluşturmanın sözdizimi, kullanılan veritabanı sistemine (ör. MySQL, SQL Server, Oracle) göre biraz değişebilir. Aşağıda SQL Server sözdizimini kullanan genel bir örnek bulunmaktadır:
-- Create a stored procedure named ProcedureNameCREATEPROCEDURE ProcedureName
@Parameter1INT,@Parameter2VARCHAR(50)ASBEGIN-- SQL statements go hereSELECT*FROM TableName WHERE Column1 =@Parameter1AND Column2 =@Parameter2;END;Altyapı:
Yukarıdaki sözdiziminde;
CREATE PROCEDURE: Yeni bir saklı yordam tanımlamak için kullanılan komuttur.
ProcedureName: Saklı yordama verilen ad. Veritabanı içinde benzersiz olmalıdır.
@Parameter1, @Parameter2: Parametreler isteğe bağlıdır; yordamın veri girişi almasına olanak tanır. Her parametre bir @ sembolü ve bir veri türüyle (ör. INT, VARCHAR(50)) tanımlanır.
AS BEGIN...END: BEGIN ve END arasındaki SQL deyimleri, ana mantığın çalıştırıldığı yordam gövdesini oluşturur. Bu örnekte yordam, belirli koşullara göre bir tablodan kayıtları getirir.
Girdi ve çıktı parametreleri
Girdi ve çıktı parametreleri, bir saklı yordama değerler iletip ondan değerler almanıza olanak tanır.
Örneğin, @Parameter1 bir girdi parametresi olarak tanımlanmışsa, yordam çağrıldığında herhangi bir değer atanabilir ve bu da SQL mantığını veya çıktıyı etkiler. Aşağıdaki örnekte, @UserID parametresi, verilen UserID’ye özgü verileri getirir.
-- Create a procedure to retrieve data for a specific user by UserIDCREATEPROCEDURE GetUserData
-- Input parameter: ID of the user to retrieve@UserIDINTASBEGIN-- Select all columns from Users where UserID matches the input parameterSELECT*FROM Users WHERE UserID =@UserID;END;Altyapı:
OUTPUT anahtar sözcüğüyle tanımlanan çıktı parametreleri, bir saklı yordamın çağıran ortama bir değer geri göndermesine olanak tanır. Örneğin, bir yordam bir indirimi hesaplıyorsa, bunu çağıran programa iletmek için bir çıktı parametresi kullanabilir.
-- Create a procedure to calculate the discounted priceCREATEPROCEDURE CalculateDiscount
@PriceDECIMAL(10,2),@DiscountRateDECIMAL(5,2),@FinalPriceDECIMAL(10,2) OUTPUT -- Output: final price after discountASBEGIN-- Calculate final price by applying the discount rate to the original priceSET@FinalPrice=@Price*(1-@DiscountRate);END;Altyapı:
Bu yordamı çağırmak için şunu kullanırsınız;
-- Declare a variable to store the final price after discountDECLARE@FinalPriceDECIMAL(10,2);-- Execute the CalculateDiscount procedure with a price of 100 and a 10% discount -- Store the output in the @FinalPrice variableEXEC CalculateDiscount @Price=100,@DiscountRate=0.1,@FinalPrice=@FinalPrice OUTPUT;-- Select and display the final discounted priceSELECT@FinalPriceAS FinalPrice;Altyapı:
MySQL’de Saklı Yordamlar
Belirttiğim gibi, bir saklı yordamı SQL’de çalıştırmanın yöntemi, veritabanı sistemine ve kullanılan araçlara bağlı olarak değişebilir.
MySQL’de saklı yordam oluşturma
MySQL’de bir saklı yordam oluşturmak, yordamın adını, parametrelerini ve gövdesini oluşturan SQL deyimlerini tanımlamayı içerir. Aşağıdaki örnek, girdi parametresi olarak EmployeeID alan ve belirli çalışana ait ayrıntıları getiren GetEmployeeDetails adlı bir yordam oluşturur.
DELIMITER $
-- Create a procedure to retrieve details for a specific employee by EmployeeIDCREATEPROCEDURE GetEmployeeDetails(IN EmployeeID INT)BEGIN-- Select all columns from Employees where EmployeeID matches the input parameter SELECT*FROM Employees WHERE EmployeeID = EmployeeID;END$
DELIMITER;Altyapı:
MySQL’de saklı yordam çalıştırma
Bir saklı yordamı çalıştırmanın en yaygın yolu SQL komutlarını kullanmaktır. MySQL’de saklı yordamı çalıştırmak için CALL komutunu kullanırız.
Tanımladığımız GetEmployeeDetails yordamını kullanarak, çalıştırma sorgusu şu şekilde görünür:
-- Execute the stored procedure to retrieve details for EmployeeID 101CALL GetEmployeeDetails(101);Altyapı:
SQL Server’da Saklı Yordamlar
SQL Server, saklı yordamları oluşturmak, çalıştırmak ve yönetmek için özel sözdizimi ve komutlar sağlar. Bu yaklaşım, minimum tekrar ile karmaşık görevleri ele alabilen verimli ve yeniden kullanılabilir SQL rutinleri oluşturmayı kolaylaştırır.
SQL Server’da saklı yordam oluşturma
SQL Server’da bir saklı yordam oluşturmak, yordamın adını, parametrelerini ve gövdesini oluşturan SQL deyimlerini tanımlamayı içerir. Aşağıdaki örnek, girdi parametresi olarak @EmployeeID alan ve belirli çalışana ait ayrıntıları getiren GetEmployeeDetails adlı bir yordam oluşturur.
-- Create a procedure to retrieve details for a specific employee by EmployeeIDCREATEPROCEDURE GetEmployeeDetails
@EmployeeIDINT-- Input parameter: ID of the employee to retrieveASBEGIN-- Select all columns from Employees where EmployeeID matches the input parameterSELECT*FROM Employees WHERE EmployeeID =@EmployeeID;END;Altyapı:
SQL Server’da saklı yordam çalıştırma
SQL Server’da, bir saklı yordamı çağırmak için EXEC veya EXECUTE komutu kullanılır. Aşağıdaki örnek, belirli girdi parametreleri kullanarak GetEmployeeDetails saklı yordamının nasıl çalıştırılacağını göstermektedir.
-- Execute the GetEmployeeDetails procedure with the EmployeeIDset to 102EXEC GetEmployeeDetails @EmployeeID=102;Altyapı:
Ayrıca, komutta değişken tanımlayarak çıktı parametrelerini de çalıştırabilirsiniz. Aşağıdaki örnekte, @TotalSales, CalculateTotalSales’tan çıkışı almak üzere bir değişken olarak tanımlanmıştır.
-- Declare a variable to store the total sales amountDECLARE@TotalSalesDECIMAL(10,2);-- Execute CalculateTotalSales for SalespersonID 5, store the result in @TotalSalesEXEC CalculateTotalSales @SalespersonID=5,@TotalSales=@TotalSales OUTPUT;-- Display the total sales amountSELECT@TotalSalesAS TotalSales;Altyapı:
SQL Server’ın veri sorgulama için sunduğu farklı işlevleri anlamak üzere Introduction to SQL Server kursumuzu almanızı öneririm. Ayrıca, yalnızca saklı yordamları oluşturma, güncelleme ve çalıştırma becerileri kazandırmakla kalmayıp, aynı zamanda toplu işlevler, birleştirme, tablo ekleme ve silme gibi konularda da yardımcı olacak kapsamlı SQL Server Developer kariyer yolumuzu da değerlendirin.
Saklı Yordamların Yaygın Kullanım Alanları
SQL saklı yordamlar, tekrarlayan ve karmaşık görevlerin gerektiği senaryolarda kullanışlıdır. Aşağıdakiler, veri yönetimi ve iş operasyonlarında saklı yordamların gerçek dünya uygulamalarıdır.
Veri doğrulama ve bütünlüğün sağlanması
Saklı yordamlar, güncellemeden veya eklemeden önce verileri doğrulamak için kullanılabilir. Aşağıdaki örnekte, bir saklı yordam yeni bir kaydı Customers tablosuna eklemeden önce müşterinin e-postasının benzersiz olduğunu kontrol ederek veri tutarlılığını sağlar. Bu, doğrulama mantığını veritabanı içinde merkezileştirir, tekrarları azaltır ve farklı uygulamalar arasında tutarlı bir şekilde uygulanmasını sağlar.
-- Create a procedure to add a new customer, checking for duplicate emailCREATEPROCEDURE AddCustomer
@CustomerNameVARCHAR(50),@CustomerEmailVARCHAR(50)ASBEGIN-- Check if the email already exists in the Customers tableIFEXISTS(SELECT1FROM Customers WHERE Email =@CustomerEmail)-- Throw an error if the email is already in use
THROW 50000,'Email already exists.',1;ELSE-- Insert new customer details if email is uniqueINSERTINTO Customers (Name, Email)VALUES(@CustomerName,@CustomerEmail);END;Altyapı:
Otomatik veri işleme ve raporlama
Saklı yordamları düzenli raporlar üretmek veya büyük veri kümelerini işlemek için de kullanabilirsiniz. Örneğin, bir saklı yordam bir e-ticaret platformundan günlük satış verilerini bir araya getirip bir raporlama tablosuna kaydedebilir; böylece ekiplerin karmaşık sorgular çalıştırmadan satış içgörülerine erişmesi kolaylaşır.
-- Create a procedure to generate a daily sales reportCREATEPROCEDURE GenerateDailySalesReport
ASBEGIN-- Insert today's date and total sales into the SalesReport tableINSERTINTO SalesReport (ReportDate, TotalSales)-- Select current date and sum of sales for today from Sales tableSELECT CAST(GETDATE()ASDATE),SUM(SalesAmount)FROM Sales
WHERE SaleDate = CAST(GETDATE()ASDATE);END;Altyapı:
İşlem yönetimi
Saklı yordamları kullanarak, birden fazla işlemin tek bir işlem (transaction) olarak yürütülmesini sağlayabilirsiniz. Örneğin, bir bankacılık sisteminde bir saklı yordam, bir para transferinde hem borç hem alacak hareketlerini ele alabilir; böylece her iki eylemin birlikte başarılı olması veya birlikte başarısız olması güvence altına alınır.
-- Create a procedure to transfer funds between accountsCREATEPROCEDURE TransferFunds
@SenderAccountINT,@ReceiverAccountINT,@AmountDECIMAL(10,2)ASBEGINBEGINTRANSACTION;-- Start a transaction to ensure atomicity-- Deduct the specified amount from the sender's account balanceUPDATE Accounts SET Balance = Balance -@AmountWHERE AccountID =@SenderAccount;-- Add the specified amount to the receiver's account balanceUPDATE Accounts SET Balance = Balance +@AmountWHERE AccountID =@ReceiverAccount;-- Check for errors and rollback if any occurred; otherwise, commit the transactionIF @@ERROR<>0ROLLBACKTRANSACTION;-- Undo all changes if an error occurredELSECOMMITTRANSACTION;-- Confirm changes if no errorsEND;Altyapı:
Erişim kontrolü ve veri güvenliği
SQL saklı yordamları, hassas bilgilere veri erişimini kontrol etmek için de kullanılabilir. Örneğin, bir saklı yordam, kullanıcılara yalnızca ilgili alanları (örneğin hesap bakiyeleri) getiren bir yordamı çağırmalarına izin vererek doğrudan tablo erişimini sınırlayabilir; işlem ayrıntılarını hariç tutabilir.
-- Create a procedure to retrieve account balance, with authorization checkCREATEPROCEDURE GetAccountBalance
@AccountIDINT,@UserIDINTASBEGIN-- Check if the account exists and is owned by the specified userIFEXISTS(SELECT1FROM Accounts WHERE AccountID =@AccountIDAND UserID =@UserID)-- If authorized, select and return the account balanceSELECT Balance FROM Accounts WHERE AccountID =@AccountID;ELSE-- If unauthorized, throw an error
THROW 50000,'Unauthorized access.',1;END;Altyapı:
Veri taşıma ve ETL süreçleri
Saklı yordamlar, sistemler arasında veri yüklemek, dönüştürmek ve taşımak için de kullanılır. Bir saklı yordam, bir kaynak veritabanından veri çıkarmayı, gerektiği gibi dönüştürmeyi ve hedef tabloya eklemeyi otomatikleştirerek raporlama veya analiz için veri entegrasyonunu basitleştirebilir.
CREATEPROCEDURE ETLProcess
ASBEGIN-- ExtractINSERTINTO StagingTable
SELECT*FROM SourceTable WHERE Condition;-- TransformUPDATE StagingTable SET ColumnX = TransformationLogic(ColumnX);-- LoadINSERTINTO TargetTable
SELECT*FROM StagingTable;END;Altyapı:
Saklı Yordamlar için En İyi Uygulamalar
Verimli ve sürdürülebilir saklı yordamlar yazmak, veritabanınızın en iyi şekilde çalışmasını sağlar. Aşağıdakiler, SQL veritabanlarınız için saklı yordam yazmaya yönelik ipuçlarıdır.
Tutarlı adlandırma kuralları kullanın: Saklı yordamların kolayca tanımlanıp anlaşılması için tutarlı ve açıklayıcı bir adlandırma biçimi kullanın. Ayrıca, sistem yordamları için ayrılmış olan ve olası çakışma ile performans sorunlarına yol açabilecek sp_ önekinden SQL Server’da kaçının.
Hata işleme uygulayın: Hataları yakalamak ve ele almak, veri bütünlüğünü korumak için SQL deyimlerini TRY...CATCH bloklarına sarın.
Performans için optimize edin: Yavaş ve kaynak tüketimi yüksek olabildikleri için imleçlerin (cursor) kullanımını en aza indirin. Bunun yerine, genellikle daha verimli olan küme tabanlı işlemleri deneyin. Ayrıca, sık kullanılan sütunları dizinleyin ve bellek yükünü azaltmak ve verimliliği artırmak için büyük tablolarda karmaşık birleştirmelerden kaçının.
Saklı yordamları parametreleştirin: Sabit değerler yerine parametreler kullanarak yordamınıza dinamik değerler geçirmenize olanak tanıyın; böylece daha esnek ve yeniden kullanılabilir hale gelir.
Toplama işlevlerini ve birleştirmeleri kullanarak veri filtrelemeyi daha iyi öğrenmek için Intermediate SQL kursumuza göz atın. Ayrıca, tablo birleştirme ve veri analizi becerilerinizi geliştirmek için SQL Server Fundamentals ve SQL Fundamentals beceri yollarını deneyin.
Sonuç
SQL saklı yordamları, veritabanı yönetiminde kodun yeniden kullanılabilirliğini ve performans optimizasyonunu artırır. Saklı yordamlar ayrıca kontrollü erişim ve veri bütünlüğünün sağlanması yoluyla veritabanı güvenliğini güçlendirir. Bir veri uygulayıcısı olarak, en iyi veritabanı yönetimi uygulamalarında ustalaşmak için saklı yordamlar oluşturmayı ve çalıştırmayı pratik etmenizi tavsiye ederim.
Yetkin bir veri analisti olmakla ilgileniyorsanız, gerekli becerileri öğrenmek için Associate Data Analyst in SQL kariyer yolumuza göz atın. Profesyonel panoları SQL kullanarak nasıl oluşturacağınızı öğrenmek istiyorsanız Reporting in SQL kursu da uygundur. Son olarak, SQL’i veri analizi için kullanma konusundaki yetkinliğinizi göstermek ve diğer veri profesyonelleri arasında öne çıkmak için SQL Associate Certification almanızı öneririm.
Veri analitiği, iş zekâsı ve veri bilimi alanlarında pratik deneyime sahip Veri Bilimi Teknik Yazarı. SQL, Python, Power BI, Databricks ve veri mühendisliği üzerine, gerçek dünya analitik çalışmalarına dayanan, uygulamaya dönük ve sektöre odaklı içerikler yazıyorum. Yazılarım teknik derinlikle iş etkisi arasındaki köprüyü kurarak profesyonellerin veriyi güvenle karara dönüştürmelerine yardımcı olur.
Saklı Yordam SSS
SQL’de saklı yordam nedir?⌄
Saklı yordam, belirli bir görevi yerine getiren ve yeniden kullanım için veritabanı içinde saklanan SQL deyimlerinin bir koleksiyonudur.
Saklı yordamlar, normal SQL sorgularından nasıl farklıdır?⌄
Tekil sorgulardan farklı olarak, saklı yordamlar önceden derlenmiştir ve akış denetimi deyimleri, parametreler ve hata işleme içerebilir; bu da daha karmaşık işlemlere olanak tanır.
Saklı yordamlarda girdi ve çıktı parametreleri arasındaki fark nedir?⌄
Girdi parametreleri kullanıcıların yordama değerler iletmesine, çıktı parametreleri ise yordamdan çağırana değerler döndürülmesine imkân tanır.
Saklı yordamlar veritabanına özgü müdür?⌄
Saklı yordamlar, her SQL veritabanı yönetim sistemine (ör. SQL Server, MySQL, Oracle) özgü olabilir ve platformlar arasında sözdizimi farklılıkları bulunur.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
SQL saklı yordamlar, bir veritabanında kaydedilen ve saklanan SQL deyimleri kümeleridir. Verileri işleme ve doğrulama görevlerini talep üzerine çalıştırabilir, yaygın işlemler için tekrarlayan SQL kodu yazma gereksinimini azaltır. Saklı yordamlar, verimlilik ve yeniden kullanılabilirliği teşvik ederek veritabanı yönetiminde faydalıdır. Ayrıca, gelişmiş veritabanı güvenliği ve sürdürülebilirliğini desteklerler. Bu yazıda, SQL saklı yordamlarının nasıl oluşturulacağını ve çalıştırılacağını, yaygın kullanım alanlarını ve en iyi uygulamaları ele alacağız.
Başlarken, DataCamp’in Introduction to SQL ve Learn SQL kurslarını almanızı şiddetle tavsiye ederim; SQL kullanarak verileri çıkarma ve analiz etme konusunda temel bilgileri edinirsiniz. Ayrıca, indirilebilir SQL Basics Cheat Sheet en yaygın SQL işlevlerini içerdiği için yararlı bir başvuru kaynağıdır.
SQL’de Saklı Yordam Nedir?
SQL’de saklı yordam, veritabanı içinde kaydedilen ve saklanan SQL deyimlerinin bir koleksiyonudur. SQL saklı yordamının amacı; sorgulama, ekleme, güncelleme veya silme gibi bir dizi işlemi veritabanı üzerinde gerçekleştirmektir.
Ayrı komutlar olarak çalıştırılan normal SQL sorgularından farklı olarak, saklı yordamlar bir dizi SQL deyimini kapsülleterek kodu tekrar tekrar SQL komutları yazmadan yeniden kullanmayı kolaylaştırır.
SQL saklı yordamlarının faydaları şunları içerir:
Temel sözdizimi ve yapı
Bir saklı yordam oluşturmanın sözdizimi, kullanılan veritabanı sistemine (ör. MySQL, SQL Server, Oracle) göre biraz değişebilir. Aşağıda SQL Server sözdizimini kullanan genel bir örnek bulunmaktadır:
Yukarıdaki sözdiziminde;
CREATE PROCEDURE: Yeni bir saklı yordam tanımlamak için kullanılan komuttur.
ProcedureName: Saklı yordama verilen ad. Veritabanı içinde benzersiz olmalıdır.
@Parameter1, @Parameter2: Parametreler isteğe bağlıdır; yordamın veri girişi almasına olanak tanır. Her parametre bir
@sembolü ve bir veri türüyle (ör.INT,VARCHAR(50)) tanımlanır.AS BEGIN...END:
BEGINveENDarasındaki SQL deyimleri, ana mantığın çalıştırıldığı yordam gövdesini oluşturur. Bu örnekte yordam, belirli koşullara göre bir tablodan kayıtları getirir.Girdi ve çıktı parametreleri
Girdi ve çıktı parametreleri, bir saklı yordama değerler iletip ondan değerler almanıza olanak tanır.
Örneğin,
@Parameter1bir girdi parametresi olarak tanımlanmışsa, yordam çağrıldığında herhangi bir değer atanabilir ve bu da SQL mantığını veya çıktıyı etkiler. Aşağıdaki örnekte,@UserIDparametresi, verilenUserID’ye özgü verileri getirir.OUTPUTanahtar sözcüğüyle tanımlanan çıktı parametreleri, bir saklı yordamın çağıran ortama bir değer geri göndermesine olanak tanır. Örneğin, bir yordam bir indirimi hesaplıyorsa, bunu çağıran programa iletmek için bir çıktı parametresi kullanabilir.Bu yordamı çağırmak için şunu kullanırsınız;
MySQL’de Saklı Yordamlar
Belirttiğim gibi, bir saklı yordamı SQL’de çalıştırmanın yöntemi, veritabanı sistemine ve kullanılan araçlara bağlı olarak değişebilir.
MySQL’de saklı yordam oluşturma
MySQL’de bir saklı yordam oluşturmak, yordamın adını, parametrelerini ve gövdesini oluşturan SQL deyimlerini tanımlamayı içerir. Aşağıdaki örnek, girdi parametresi olarak
EmployeeIDalan ve belirli çalışana ait ayrıntıları getirenGetEmployeeDetailsadlı bir yordam oluşturur.MySQL’de saklı yordam çalıştırma
Bir saklı yordamı çalıştırmanın en yaygın yolu SQL komutlarını kullanmaktır. MySQL’de saklı yordamı çalıştırmak için
CALLkomutunu kullanırız.Tanımladığımız
GetEmployeeDetailsyordamını kullanarak, çalıştırma sorgusu şu şekilde görünür:SQL Server’da Saklı Yordamlar
SQL Server, saklı yordamları oluşturmak, çalıştırmak ve yönetmek için özel sözdizimi ve komutlar sağlar. Bu yaklaşım, minimum tekrar ile karmaşık görevleri ele alabilen verimli ve yeniden kullanılabilir SQL rutinleri oluşturmayı kolaylaştırır.
SQL Server’da saklı yordam oluşturma
SQL Server’da bir saklı yordam oluşturmak, yordamın adını, parametrelerini ve gövdesini oluşturan SQL deyimlerini tanımlamayı içerir. Aşağıdaki örnek, girdi parametresi olarak
@EmployeeIDalan ve belirli çalışana ait ayrıntıları getirenGetEmployeeDetailsadlı bir yordam oluşturur.SQL Server’da saklı yordam çalıştırma
SQL Server’da, bir saklı yordamı çağırmak için
EXECveyaEXECUTEkomutu kullanılır. Aşağıdaki örnek, belirli girdi parametreleri kullanarakGetEmployeeDetailssaklı yordamının nasıl çalıştırılacağını göstermektedir.Ayrıca, komutta değişken tanımlayarak çıktı parametrelerini de çalıştırabilirsiniz. Aşağıdaki örnekte,
@TotalSales,CalculateTotalSales’tan çıkışı almak üzere bir değişken olarak tanımlanmıştır.SQL Server’ın veri sorgulama için sunduğu farklı işlevleri anlamak üzere Introduction to SQL Server kursumuzu almanızı öneririm. Ayrıca, yalnızca saklı yordamları oluşturma, güncelleme ve çalıştırma becerileri kazandırmakla kalmayıp, aynı zamanda toplu işlevler, birleştirme, tablo ekleme ve silme gibi konularda da yardımcı olacak kapsamlı SQL Server Developer kariyer yolumuzu da değerlendirin.
Saklı Yordamların Yaygın Kullanım Alanları
SQL saklı yordamlar, tekrarlayan ve karmaşık görevlerin gerektiği senaryolarda kullanışlıdır. Aşağıdakiler, veri yönetimi ve iş operasyonlarında saklı yordamların gerçek dünya uygulamalarıdır.
Veri doğrulama ve bütünlüğün sağlanması
Saklı yordamlar, güncellemeden veya eklemeden önce verileri doğrulamak için kullanılabilir. Aşağıdaki örnekte, bir saklı yordam yeni bir kaydı
Customerstablosuna eklemeden önce müşterinin e-postasının benzersiz olduğunu kontrol ederek veri tutarlılığını sağlar. Bu, doğrulama mantığını veritabanı içinde merkezileştirir, tekrarları azaltır ve farklı uygulamalar arasında tutarlı bir şekilde uygulanmasını sağlar.Otomatik veri işleme ve raporlama
Saklı yordamları düzenli raporlar üretmek veya büyük veri kümelerini işlemek için de kullanabilirsiniz. Örneğin, bir saklı yordam bir e-ticaret platformundan günlük satış verilerini bir araya getirip bir raporlama tablosuna kaydedebilir; böylece ekiplerin karmaşık sorgular çalıştırmadan satış içgörülerine erişmesi kolaylaşır.
İşlem yönetimi
Saklı yordamları kullanarak, birden fazla işlemin tek bir işlem (transaction) olarak yürütülmesini sağlayabilirsiniz. Örneğin, bir bankacılık sisteminde bir saklı yordam, bir para transferinde hem borç hem alacak hareketlerini ele alabilir; böylece her iki eylemin birlikte başarılı olması veya birlikte başarısız olması güvence altına alınır.
Erişim kontrolü ve veri güvenliği
SQL saklı yordamları, hassas bilgilere veri erişimini kontrol etmek için de kullanılabilir. Örneğin, bir saklı yordam, kullanıcılara yalnızca ilgili alanları (örneğin hesap bakiyeleri) getiren bir yordamı çağırmalarına izin vererek doğrudan tablo erişimini sınırlayabilir; işlem ayrıntılarını hariç tutabilir.
Veri taşıma ve ETL süreçleri
Saklı yordamlar, sistemler arasında veri yüklemek, dönüştürmek ve taşımak için de kullanılır. Bir saklı yordam, bir kaynak veritabanından veri çıkarmayı, gerektiği gibi dönüştürmeyi ve hedef tabloya eklemeyi otomatikleştirerek raporlama veya analiz için veri entegrasyonunu basitleştirebilir.
Saklı Yordamlar için En İyi Uygulamalar
Verimli ve sürdürülebilir saklı yordamlar yazmak, veritabanınızın en iyi şekilde çalışmasını sağlar. Aşağıdakiler, SQL veritabanlarınız için saklı yordam yazmaya yönelik ipuçlarıdır.
Tutarlı adlandırma kuralları kullanın: Saklı yordamların kolayca tanımlanıp anlaşılması için tutarlı ve açıklayıcı bir adlandırma biçimi kullanın. Ayrıca, sistem yordamları için ayrılmış olan ve olası çakışma ile performans sorunlarına yol açabilecek
sp_önekinden SQL Server’da kaçının.Hata işleme uygulayın: Hataları yakalamak ve ele almak, veri bütünlüğünü korumak için SQL deyimlerini
TRY...CATCHbloklarına sarın.Performans için optimize edin: Yavaş ve kaynak tüketimi yüksek olabildikleri için imleçlerin (cursor) kullanımını en aza indirin. Bunun yerine, genellikle daha verimli olan küme tabanlı işlemleri deneyin. Ayrıca, sık kullanılan sütunları dizinleyin ve bellek yükünü azaltmak ve verimliliği artırmak için büyük tablolarda karmaşık birleştirmelerden kaçının.
Saklı yordamları parametreleştirin: Sabit değerler yerine parametreler kullanarak yordamınıza dinamik değerler geçirmenize olanak tanıyın; böylece daha esnek ve yeniden kullanılabilir hale gelir.
Toplama işlevlerini ve birleştirmeleri kullanarak veri filtrelemeyi daha iyi öğrenmek için Intermediate SQL kursumuza göz atın. Ayrıca, tablo birleştirme ve veri analizi becerilerinizi geliştirmek için SQL Server Fundamentals ve SQL Fundamentals beceri yollarını deneyin.
Sonuç
SQL saklı yordamları, veritabanı yönetiminde kodun yeniden kullanılabilirliğini ve performans optimizasyonunu artırır. Saklı yordamlar ayrıca kontrollü erişim ve veri bütünlüğünün sağlanması yoluyla veritabanı güvenliğini güçlendirir. Bir veri uygulayıcısı olarak, en iyi veritabanı yönetimi uygulamalarında ustalaşmak için saklı yordamlar oluşturmayı ve çalıştırmayı pratik etmenizi tavsiye ederim.
Yetkin bir veri analisti olmakla ilgileniyorsanız, gerekli becerileri öğrenmek için Associate Data Analyst in SQL kariyer yolumuza göz atın. Profesyonel panoları SQL kullanarak nasıl oluşturacağınızı öğrenmek istiyorsanız Reporting in SQL kursu da uygundur. Son olarak, SQL’i veri analizi için kullanma konusundaki yetkinliğinizi göstermek ve diğer veri profesyonelleri arasında öne çıkmak için SQL Associate Certification almanızı öneririm.