Takip et

SQL’de Fonksiyonlar, Prosedürler, İmleçler ve Tetikleyiciler

SQL’de Fonksiyonlar, Prosedürler, İmleçler ve Tetikleyiciler

SQL, veritabanı yönetim sistemlerinde (VTYS) verileri yönetmek için kullanılan güçlü bir dildir. Bu dilin temel yapıtaşlarından bazıları ise fonksiyonlar, prosedürler, imleçler ve tetikleyicilerdir. Bu makalede, bu önemli SQL bileşenlerini detaylı olarak inceleyeceğiz ve örneklerle destekleyeceğiz. Öncelikle, her bir bileşenin ne işe yaradığına genel bir bakış sunacağız.

Fonksiyonlar

Fonksiyonlar, belirli bir görevi yerine getiren ve genellikle bir değer döndüren kod bloklarıdır. Bir fonksiyon, veritabanında tekrarlanan işlemleri basitleştirmek ve kodun okunabilirliğini artırmak için kullanılır. Örneğin, bir ürünün fiyatına vergi ekleyen bir fonksiyon yazabilirsiniz. Sonrasında, bu fonksiyonu birçok yerde tekrar tekrar kullanabilirsiniz. Bu sayede kod yazma sürenizi kısaltabilir ve hata olasılığını düşürebilirsiniz. Aynı zamanda, kodunuz daha düzenli ve okunaklı hale gelir.


-- Örnek fonksiyon: Vergi ekleme
CREATE FUNCTION CalculatePriceWithTax (@price DECIMAL(10,2), @taxRate DECIMAL(5,2))
RETURNS DECIMAL(10,2)
AS
BEGIN
  DECLARE @totalPrice DECIMAL(10,2);
  SET @totalPrice = @price * (1 + @taxRate);
  RETURN @totalPrice;
END;

Prosedürler

Prosedürler, bir dizi SQL komutunu bir araya getiren ve genellikle bir veya daha fazla işlem gerçekleştiren kod bloklarıdır. Fonksiyonlardan farklı olarak, prosedürler genellikle bir değer döndürmez. Örneğin, bir müşteri kaydı eklemek veya bir siparişi güncellemek için prosedürler kullanabilirsiniz. Prosedürler, veritabanı işlemlerini daha yapılandırılmış ve güvenli hale getirmeye yardımcı olur. Başka bir deyişle, prosedürler karmaşık işlemleri daha yönetilebilir parçalara ayırır. Bu da kodun anlaşılırlığını ve sürdürülebilirliğini artırır. Ayrıca, prosedürler, yetkilendirme kontrolü gibi güvenlik özelliklerini uygulamaya olanak tanır.


-- Örnek prosedür: Müşteri ekleme
CREATE PROCEDURE AddCustomer (@name VARCHAR(50), @email VARCHAR(50))
AS
BEGIN
  INSERT INTO Customers (Name, Email) VALUES (@name, @email);
END;

İmleçler (Cursors)

İmleçler, bir SQL sorgusunun sonuç kümesinde satır satır gezinmenizi sağlayan nesnelerdir. İmleçler, özellikle bir sorgunun sonuç kümesinde işlem yapmak istediğinizde faydalıdır. Örneğin, bir sonuç kümesindeki her satırı güncellemek veya her satırı ayrı bir işlemde işleme almak isteyebilirsiniz. Ancak, imleçlerin performans açısından daha pahalı olduğunu unutmamak önemlidir. Eğer mümkünse, imleç kullanmadan sorguyu tek bir işlemle gerçekleştirmek her zaman tercih edilmelidir. Yine de, bazı durumlarda imleç kullanmak kaçınılmaz olabilir.


-- Örnek imleç kullanımı (genellikle önerilmez, performans düşürebilir)
DECLARE @CustomerID INT;
DECLARE CustomerCursor CURSOR FOR SELECT CustomerID FROM Customers;
OPEN CustomerCursor;
FETCH NEXT FROM CustomerCursor INTO @CustomerID;
WHILE @@FETCH_STATUS = 0
BEGIN
  -- @CustomerID ile ilgili işlemler
  FETCH NEXT FROM CustomerCursor INTO @CustomerID;
END;
CLOSE CustomerCursor;
DEALLOCATE CustomerCursor;

Tetikleyiciler (Triggers)

Tetikleyiciler, veritabanındaki belirli olaylara (örneğin, bir tabloya veri ekleme, güncelleme veya silme) otomatik olarak yanıt veren kod bloklarıdır. Tetikleyiciler, veritabanı bütünlüğünü korumak ve verilerin tutarlılığını sağlamak için kullanılır. Örneğin, bir müşteri silindiğinde ilgili siparişlerini de silebilirsiniz. Bunun için, Customers tablosunda bir silme tetikleyicisi oluşturabilirsiniz. Bu tetikleyici, bir müşteri silindiğinde otomatik olarak ilgili siparişleri de siler. Bu şekilde veritabanınızda tutarsızlıkların önüne geçebilirsiniz. Tetikleyiciler, veritabanı işlemlerini otomatikleştirmek ve verilerin güvenliğini sağlamak için çok kullanışlı bir araçtır.


-- Örnek tetikleyici: Müşteri silindiğinde siparişleri silme (basitleştirilmiş örnek)
CREATE TRIGGER DeleteOrdersOnCustomerDelete
ON Customers
INSTEAD OF DELETE
AS
BEGIN
  DELETE FROM Orders WHERE CustomerID IN (SELECT CustomerID FROM deleted);
END;

Bu makalede, SQL’de fonksiyonlar, prosedürler, imleçler ve tetikleyicilerin temel kullanımını inceledik. Bu bileşenler, veritabanı uygulamalarınızın daha güçlü, verimli ve güvenli olmasını sağlar. Daha fazla bilgi için fatihsoysal.com sitesini ziyaret edebilirsiniz. Ayrıca, SQL konusundaki daha kapsamlı kaynaklar için w3schools.com sitesine de göz atabilirsiniz.

#Etiketler

SQL, Fonksiyon, Prosedür, İmleç, Tetikleyici, Veritabanı, Programlama, Örnekler, Tutorial


Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version