Öncelikle bu yazıyı okuyan herkese merhaba,
Uzun süredir (yaklaşık 1 hafta) yazı yazamıyordum. Projelerdi,iş başvurularıydı,görüşmelerdi derken yazıları baya bir aksattık. Hemen bu farkı kapatmalıyız.
Bu yazıda ms-sql deki fonksiyonlardan bahsedeceğiz.
Fonksiyonlar C# taki değer dönen metotlar gibidir. Kullanıldıkları satırda bir veri elde eder. Elde ettiği veriyi tekrar komut satırında çalıştırabiliriz. Aynı şekilde stored procedures için de metod benzetmesi kullanmıştık. Aralarındaki fark stored procedure’ler exec komutu ile çalıştırılabilirler,fonksiyonlar ise select ifadeleri içerisinde kullanılırlar.
System Functions: Veritabanında programability altında function sekmesinin içinde system functions sekmesinde bulunur.
Aggregate Functions : Kümeleme fonksiyonlarıdır. Bir küme içinde işlem yapmak için kullanılırlar.
sum(),count(),max(),min(),avg() gibi
Configuration Functions : Db ayarı getirmek veya değiştirmek için kullanılırlar.
Scalar Functions : Belirli parametreleri alıp geriye tekil değer döndüren fonksiyonlardır.
Table Valued Functions : İşlem sonucunda geriye tablo dönen fonksiyondur.
UserDefined Functions : Kullanıcıların tanımladıkları fonksiyonlardır.
Bazı Sistem fonksiyonları:
Len(string): Verilen yazının uzunluğunu hesaplar ve geri döndürür.
select p.ProductName,LEN(p.ProductName) from Products as p where LEN(p.ProductName) > 12
SubString(): Verilen kelimeden verilen karakter kadarını alır.
select p.ProductName,SUBSTRING(p.ProductName,1,5) from Products as p
select SUBSTRING('Serkan Yarbas',2,7)
Left() Right() : Sağdan veya soldan verilen uzunlukta karakter alır.
select RIGHT('Serkan Yarbas',5)
Upper() Lower() : kelimeyi büyük ya da küçük kelimeye çevirir.
select UPPER('serkan yarbas')
select LOWER('Serkan YARBAS')
select UPPER(LEFT(p.ProductName,1))+RIGHT(p.ProductName,LEN(p.ProductName)-1) from Products as p
round(): Yuvarlama işlemi yapar.
select p.UnitPrice, ROUND(p.UnitPrice,1,1) from Products as p
select CONVERT(int,'45') * 3
select CAST('2.12.2012' as datetime)
User Defined Functions : İhtiyaca göre fonksiyonlar üretebiliyoruz.
create function KDV(@para money) returns money as Begin return @para*0.18 End
Fonksiyonumuzu oluşturduktan sonra kullanabilmek için dbo schemasını çağırmalıyız.
select p.UnitPrice,dbo.KDV(p.UnitPrice) as KDV from Products as p
Ürün fiyatını adetini ve indirim oranını verdiğimizde satışşın tutarını döndüren fonksiyon.
create function Fiyatlandir(@ucret money,@adet int,@indirim real) returns money as begin return @adet*(@ucret - (@ucret*@indirim)) end
select o.UnitPrice, o.Quantity, o.Discount, dbo.Fiyatlandir(o.UnitPrice,o.Quantity,o.Discount) as [Total Price] from [Order Details] as o
Bir sonraki yazımda görüşünceye kadar kendinize iyi bakın.