SET etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
SET etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

29 Aralık 2012 Cumartesi

SQL Server'da Fonksiyon Oluşturma ve Kullanma

  • Fonksiyonlar istenilen veri tiplerini alıp istenilen veri tiplerini veya bir tablo bile geri döndürebilir.
  • Birden çok parametre vereceğimiz zaman bunları virgül ile ayırmamız gerekmektedir. 
Function Create(Fonksiyon  Oluşturma) 
  • Örneğimizde Animals tablomuzdaki Kusların ortalama ağırlıklarını döndüren bir fonksiyon yazalım.

ÖRNEK:

CREATE FUNCTION fnc_OrtalamaAgirlik
(
@KusNo int
)
RETURNS int
AS
BEGIN
  DECLARE @Result int
  SET @Result = (SELECT AVG(Weight) FROM Animals.dbo.Kuslar WHERE KusNo <=@KusNo)
RETURN(@Result)
END


Function Kullanma(Fonksiyon  Kullanma)  
  • İstediğimiz lokasyondan doğru path i vererek fonksiyonumuzu çağırabiliriz.
 ÖRNEK:

DECLARE @KusNo int
SET @KusNo = 5
SELECT dbo.fnc_OrtalamaAgirlik(@KusNo) AS Ortalama



23 Aralık 2012 Pazar

SQL Serverda Karakter Sorunları

  • SQL Serverda Unicode Karakter Nasıl Kullanabiliriz?
-SQL Server elle girdiğimiz string değeri ASCII olarak algılar.

-Bu string Unicode String olarak algılaması için string ifadesini başına 'N' koymamız gerekmektedir.
  • Bozuk Karakterilerin Karşılığını Nasıl Bulabiliriz?  
 -Tabi ki belli başlı harfleri kontrol ederek onlara bizdeki karşılıklarını atayarak bozuk karakterlerin karşılığını bulabiliriz.

DECLARE @gelen NVARCHAR(MAX)
DECLARE @sonuc NVARCHAR(MAX)
SET @gelen = N'þýrýnga'

SET @sonuc = Replace(@gelen COLLATE Latin1_General_BIN,N'ð', N'ğ');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'Ğ'); 
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN, N'Ð', N'Ğ');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ý', N'ı');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Ý', N'İ');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'þ', N'ş');  
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Þ', N'Ş');
SELECT  @sonuc  COLLATE Turkish_CI_AS ;





Yukardaki örneğimizdeki gibi bir fonsiyon ile gerekli dönüşümü yapabilirsiniz.

23 Kasım 2012 Cuma

56. BREAK Komutunun Kullanımı

  • İstenilen şart yerine getirildiğinde döngüden çıkmak için BREAK komutu kullanılır.
  • Program çalışmasına WHİLE 'ın END satırından sonra devam eder.
  • BREAK komutu performans açısında da önemlidir. 
  • Gereksiz yeri elimizdeki bütün verileri kontrol etmemizi engeller. İstediğimiz dataya ulaştığımız zaman diğerlerini incelemeden döngüden veya listeden çıkmamızı sağlar.
ÖRNEK:
DECLARE @Sayac INT
SET @Sayac=0
WHILE (@Sayac<10)
BEGIN
    SELECT @Sayac=@Sayac+1
    IF(@Sayac*@Sayac>9)
        BEGIN
            PRINT 'Sayı 9 değerini geçti.'
            BREAK
        END
END
PRINT @Sayac

Not: Bu yapıda BEGIN..END lerin kullanımına dikkat edin. T-SQL de bunları düzgün kullanmak önemlidir.

Ders 57' ye geçebilirsiniz.

17 Kasım 2012 Cumartesi

55. WHILE Döngüsünün Kullanımı


  • Tekrar gerektiren işlemlerde istenilen şart sağlanana kadar işlemyapabilmemize imkan verir.
  • While döngüsü ile istediğimiz kadar işlemi tekrarlatabiliriz.
SÖZ DİZİMİ:

WHILE şart
BEGIN
 Tekrarlanması istenilen kod bloğu
END

NOT: Şart gerçekleştiği sürece BEGIN..END arasındaki kod bloğu çalışır.

ÖRNEK:

DECLARE @Sayac TINYINT
SET @Sayac=5
WHILE (@Sayac>0)
BEGIN
    PRINT @Sayac
    SELECT @Sayac=@Sayac-1
END



Not: Örneğimizde @Sayac değerini koşulumuzu sağlayana kadar WHILE döngümüzün içinde tuttuk. Dikkat etmeniz gereken bunu BEGIN..END Bloğu içinde yapmanız.

Önemli Not: Neden BEGIN..END diye sordugumuzda nedenini yokluğundan anlamak daha kalıcı olur diye düşünüyorum. Oda size kalsın. BEGIN.. END'siz ilk döngüsünü bile nasıl bitiremediğini görmelisiniz.:)

Ders 56'ya Geçebilirsiniz.

6 Eylül 2012 Perşembe

49. DECLARE & SET Kullanımı

  • SQL'de değişken tanımlamalarında DECLARE komutu kullanılır.
  • Tanımlıdığımız değişken değer atama işlemlerinde SET komutu kullanılır.
Söz Dizimi: DECLARE @<Değişken_Adı> <Değişken_tipi>



Ders 50'ye geçebilirsiniz.

21 Temmuz 2012 Cumartesi

Stored Procedure Nedir?

  • Yapısal yordamlar olarak da söylenen Stored Procedures belirli bir işlevi, görevi yerine getirmek için özellilkle yapılandırlımış bir veya birden fazla tablo,sp..vs ile ilişkili kod parçacıklarıdır.
  • Kısaca 'Derlenmiş SQL Cümlecikler'dir.
  • SP'ler Database Serverda saklanan SQL ifadeleridir. Diğer programlama dilleri gibi parameterler içerir. Bu parametrelere göre çalışıp farklı sonuçlar listeleyebilir.
  • Ayrıca bir Stored Procedure içinde başka bir Stored Procedure çağırabiliriz.
  • Datebase Serverda saklandıkları için daha hızlı çalışırlar. Normal kod ile çağırmak yerine kodla sadece SP ye parametre gönderip çağırmak çok daha iyi performans sağlamaktadır.
  • SP ler sadece ilk çalıştırıldıklarında derlenirler. Diğer çağrılışlarında derlenmeden çalışırlar. Eğer her seferinde kod içinde bu sorguyu çalıştırsak her seferinde derleme işlemi yapılacağından hem zaman hem de performans açısından kötü olur.
  • Bir SQL komutu çağrıldığında ayrıştırma , derleme ve çalıştırma aşamalarından geçmektedir. SP’ler önceden derlenmiş olduğu için , normal kullandığımız bir SQL sorgusunda olduğu gibi bu 3 aşamadan geçmez, bu özelliği sayesinde programımızın performansı artmaktadır ve ağ trafiğini de azaltmış oluruz, istemci tarafından bir çok satıra sahip SQL komutunun sunucuya gitmesindense, sadece saklı yordamın adının sunucuya gitmesi ağı daha az meşgul etmiş olur. Bir kez yazıp tekrar ve tekrar kullandığımız için modüler bir yapıda program geliştirmiş oluruz.
  • Stored procedure'un diğer bir özelliği ise programlama deyimleri içermesidir. if, next, set vs.. programlama dillerindekine benzer özellikler sunar. Gelen parametrelere göre sorgu yapılıp sonucun dönmesi sağlanabilir. 
  • Eğer veritabanlı bir projede çalışıyorsanız kesinlikle SP ler ile çalışmalısınız. Çoğu programcı programlarının hiç bir yerinde SQL ifadesi kullanmazlar. Her zaman Stored Procedure ler ile çalışırlar.

44. UPDATE Kullanımı

  • UPDATE deyimi tablomuzda bulunan verileri güncellemek, değiştirmek için kullanılır.
SÖZ DİZİMİ:
         UPDATE <tablo adı>
         SET <sütun adı>= <yeni değer>
         WHERE <sütun adı> = <eski değer> 

ÖRNEK: Sorgumuzda Çalışan tablomuzda bir kaydımızı güncellemek isteyelim. 'Margaret' isimli çalışanın terfi aldığını düşünürsek gerekli güncellemeyi yapalım. 2 tane aynı SELECT sorgusunu farklı görmek için koydum.

SORGU:SELECT * FROM Employees
   UPDATE Employees SET Title='Sales Manager' WHERE EmployeeID=4
   SELECT * FROM Employees



Ders 45' e Geçebilirsiniz.