Ana içeriğe geç

SQL'de Kullanıcı Tanımlı Saklı Yordamlar

Kullanıcı tanımlı saklı yordamın nasıl kullanılacağını ve uygulanacağını öğrenin; ayrıca SQL'deki farklı saklı yordam türlerini inceleyin.
· 5 dk. oku

Yapay Zeka ile Keşfedin

Veritabanı olarak Microsoft SQL Server kullanacaksınız. Bu derste ele alınan kavram, çoğu İlişkisel Veritabanı Yönetim Sistemi (RDBMS) için aynıdır; ancak söz dizimleri farklıdır. Burada kullanılan fikir, tüm veritabanları için uygundur.

Saklı Yordam (Stored Procedure), İlişkisel Veritabanı Yönetim Sistemi (RDBMS) içinde yer alan SQL deyimleri bloğudur; genellikle programcı, Veritabanı Yöneticisi (DBA) veya Veri Analisti tarafından yazılır, kaydedilir ve birden çok programda yeniden kullanılır. Çeşitli RDBMS'lere bağlı olarak farklı türleri de olabilir. Bununla birlikte, herhangi bir RDBMS'de bulunan iki en önemli Saklı Yordam türü şunlardır:

  • Kullanıcı tanımlı Saklı Yordam
  • Sistem Saklı Yordamı

Saklı Yordam, depolanan veya önbelleğe alınan ve ardından yeniden kullanılan, önceden derlenmiş koddur. Yeniden kullanım için önbelleğe alınmış koda sahip olabilir, bu da bakımı çok daha kolay hale getirir; örneğin, birden fazla kez değiştirilmesi gerekmez ve bu durum güvenliğin korunmasına yardımcı olabilir.

Tablo Oluşturma

Aşağıdaki gibi table_Employees adlı bir tablo oluşturacaksınız.

CREATE TABLE table_Employees
(
    EmployeeId INT PRIMARY KEY NOT NULL,
    EmployeeFirstName VARCHAR(25) NOT NULL,
    EmployeeLastName VARCHAR(25) NOT NULL,
    EmployeeGender VARCHAR(25) NOT NULL,
    EmployeeDepartmentID INT

)

Tablo, belirli bir şirketteki çalışanlara ilişkin bilgileri içerir ve aşağıdaki sütunlardan oluşur:

  1. EmployeeId: Birincil anahtardır; benzersizdir ve tamsayı veri tipindedir; değerin otomatik artması sağlanır.
  2. EmployeeFirstName: Çalışanın adıdır; karakter veri tipindedir ve boş bırakılamaz.
  3. EmployeeLast Name: Çalışanın soyadıdır; karakter veri tipindedir ve boş bırakılamaz.
  4. EmployeeGender: Çalışanın cinsiyetini gösterir ve karakter tipindedir.
  5. EmployeeDepartmentId: Çalışanın bölüm kimliğidir ve tamsayı veri tipindedir.

Tabloya değer eklemek için bir sorgu yazabilirsiniz. Tabloya değer ekleme sorgusu şu şekildedir:

    INSERT INTO <TABLE_NAME>(<COLUMNS_OF_TABLE>) VALUES(<CORRESPONDING_VALUES_TO_MATCH_COLUMN>)

Değerleri tabloya ekledikten sonra, table_Employees oluşturulmuş olur.

table_Employees

Kullanıcı Tanımlı Saklı Yordam Oluşturma

Saklı Yordam, bir sorguyu bir kez yazmanıza ve o sorgunun bir ada sahip olarak kaydedilip gerektiğinde birden fazla kez çalıştırılmasına olanak tanır. Sorguları çalıştırdığınızda, Programmabilty->Stored Procedure şeklinde bir klasör oluşur ve içinde dbo.uprocGetEmployees adlı bir dosya bulunur.

Bir Saklı Yordam oluşturmanın söz dizimi şöyledir:

CREATE PROCEDURE <<<procedure_name>>>
AS
BEGIN

   '''Required SQL Queries'''

END

Aşağıdaki SQL deyimlerini kullanarak bir Saklı Yordam oluşturabilirsiniz.

  • CREATE PROCEDURE procedure_name
  • CREATE PROC procedure_name

Ayrıca, "sp_." dışındaki bir adlandırma kuralıyla Saklı Yordam oluşturmanız gerekir. Örnekteki Saklı Yordamın adı: uprocGetEmployees.

Saklı Yordam örneği

Saklı Yordamı Çalıştırma

Bir Saklı Yordamı çalıştırmak için üç yaklaşımdan birini kullanabilir ve şu şekilde çalıştırabilirsiniz.

  • EXEC <>
  • EXECUTE <>
  • <>

Yukarıdaki programda, uprocGetEmployees yordam adını kullanabilir ve sorguyu çalıştırmak için seçebilirsiniz.

Parametreli Saklı Yordam

Saklı Yordam tekli veya çoklu parametre kabul edebilir. Önce çoklu parametreleri anlarsanız, tekli parametreleri anlamak da kolay olacaktır.

Çoklu parametreli bir Saklı Yordam oluşturmanın söz dizimi şöyledir:

CREATE PROCEDURE <<procedure_name>> <<procedure_parameter>>
AS
    BEGIN
            <<sql_query>>
    END

Örnekte, aşağıdaki klasörde bir değişiklik olduğu gösterilmektedir.
EMPLOYEE->Programmability->Stored Procedures->dbo.uprocGetEmployessGenderAndDepartment

Çoklu parametreli Saklı Yordamlar

Buradaki kavram, Python, Java vb. genel programlama dillerindeki fonksiyonlara oldukça benzerdir. Yukarıdaki programda, "uprocGetEmployeesGenderAndDepartment" adlı bir fonksiyon veya yordam vardır; @EmployeeGender ve @EmployeeDepartmentId adlı parametreleri bulunur ve bu parametreler, yordamımıza gerekli değeri geçirerek "çağrılır". Bu iki yoldan biriyle yapılabilir; aşağıda açıklanmıştır.

Bu programdaki parametreler @EmployeeGender ve @EmployeeDepartmentId'dir; parametreye değer geçirilerek "çağrılır".

Değer, iki yoldan biriyle belirtilebilir. Çoklu parametreli Saklı Yordamı çalıştırmak için bunlardan herhangi birini kullanabilirsiniz.

  • Sorguda parametre adlarını belirterek ve gerekli değerleri geçirerek:

Değer belirtme 1

  • Saklı Yordamın parametreleriyle eşleşen konuma göre ve gerekli değeri parametreye geçirerek:

Değer belirtme 2

Saklı Yordamı Değiştirme

Saklı Yordamı ALTER PROCEDURE komutunu kullanarak da değiştirebilirsiniz.

    ALTER PROCEDURE uprocGetEmployeesGenderAndDepartment
@EmployeeGender nvarchar(25),
@EmployeeDepartmentId int
BEGIN
    SELECT EmployeeFirstName,EmployeeGender,EmployeeDepartmentId FROM table_Employees WHERE
    EmployeeGender = @EmployeeGender AND EmployeeDepartmentId = @EmployeeDepartmentId
END

Saklı Yordamı Silme

Saklı Yordamlar aşağıdaki komutlarla hızlıca silinebilir:

DROP PROC <> DROP PROCEDURE <>

Şifreleme Yoluyla Güvenlik Ekleme

Aşağıdaki resimde solda görülen kilit simgesi, Saklı Yordamın şifrelendiğini ve yalnızca yetkili kişilerin erişebileceğini gösterir.

şifrelenmiş Saklı Yordam

Sonuç

Az önce Kullanıcı Saklı Yordamlarının temellerini öğrendiniz; ele alınan konular, kavramsal olarak herhangi bir RDBMS ile benzerdir. Daha fazlasını öğrenmek için DataCamp'te Intermediate SQL Server kursuna katılabilirsiniz. Ayrıca, aşağıdaki Stored Procedures eğitimi öğreniminize katkı sağlayacaktır.

Konular

İlgili