SQL PROGRAMLAMA,Sql 'de if yapısı,sql ' de case yapısı sql ' de while komutu


Sql Server ' da if,case,while yapısı nasıl kullanılır,bu makalemde sizlere bundan bahsediyorum makaleyi sonuna kadar incelemenizi tavsiye ediyorum...


BATCH
Bir batch , bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.
SELECT ……
………….
…………
UPDATE …..
…..
GO
……..
DELETE ……
…..
GO
……

Özellikleri
1- Bir batch içinde bir deyimde yazım hatası olduğunda tüm batch çalışmaz hale
gelir.
2- Aynı batch içinde bir tablonun yapısı değiştirilip kullanılamaz.
Örnek:
CREATE TABLE urun ………
INSERT urun ……….
GO
Yukarıdaki kod çalışmaz. Çünkü aynı batch içinde tablo oluşturuluyor ve bu tabloya ekleme
yapılmak isteniyor.
CREATE TABLE urun ………
GO
Yukarıdaki kod ise hata vermeden çalışır

SQL Server’da değişken tanımı


Sql server’da değişken isimlerinin başında @ sembolü bulunur.
@ad , @soyad, @tarih değişken isimlerine birer örnektir.
Değişken tanımı için DECLARE deyimi kullanılır.

Genel ifade
DECLARE @isim veritipi

Şeklinde tanımlanır
DECLARE @ad nvarchar(25), @soyad nvarchar(25), @tarih datetime
DECLARE @numara int, @borc Money
@numara =10 şeklinde atama yapılamaz, hata verir. 
Atama aşağıdaki gibi yapılır.
SELECT @numara=10 

Set @numara=10


@numara =10 şeklinde atama yapılamaz, hata verir.
Atama aşağıdaki gibi yapılır.
SELECT @numara=10
Set @numara=10
SELECT @ad=’ali’, @soyad=’coşkun’ , @borc=50
Yukarıdaki kodda @numara değişkenine 10 rakamı, @ad değişkenine ‘’ali’, @soyad

değişkenine ‘’coşkun’, @borc değişkenine 50 değer atandı.
Örnek:
DECLARE @UrunAdi varchar(30)
SELECT @UrunAdi=’Defter’
SELECT * FROM Urun WHERE UrunAdi=@UrunAdi


Örnek:
DECLARE @PersonelAdi varchar(20)
SELECT @PersonelAdi ='Ahmet'
SELECT * FROM Personel WHERE ad=@PersonelAdi

SQL server’da önceden tanımlı pek çok değişken vardır. Bunlardan iki tanesinden
bahsedelim.
@@error : sql deyimi hata vermeden çalışırsa değeri sıfır, hata verirse sıfırdan farklı bir değer
alır.
@@rowcount : Bir update, delete, insert deyimi çalıştığında, kaç tane kayıdın etkilendiğini
bize bildirir...
Yazı Yazdırma:
Yazı yazdırma PRINT deyimi kullanılır

Örnek:
PRINT 'Mehmet İrfan Erdoğan'
PRINT 5
PRINT 'HATA'
PRINT @numara
Print @@error


Akış kontrol deyimleri


SQL serverdaki akış kontrol deyimleri aşağıdadır

CASE
 IF …. ELSE ….
 WHILE …..
 BREAK
 CONTINUE

CASE deyimi 
Case deyimi SELECT, UPDATE, DELETE, SET, IN, WHERE , ORDER BY gibi deyimlerin
içinde kullanılır.
Sql içinde belirli durumlara göre farklı değerler üretmek istiyorsak CASE deyimi kullanırız.
İki farklı yazım şekli vardır.
Basit CASE yapısı

CASE GirişDenklemi
WHEN değer1 THEN sonuç1
WHEN değer2 THEN sonuç2
….
….
ELSE sonuçn
END
Örnek 1:
CASE medeniDurum
WHEN 1 THEN 'Bekar'
WHEN 2 THEN 'Evli'
ELSE 'Bilinmiyor'
END
Örnek 2:
DECLARE @sayi INT=5
SELECT
CASE @sayi
WHEN 1 THEN 'Zayıf'
WHEN 2 THEN 'Geçer'
WHEN 3 THEN 'Orta'
WHEN 4 THEN 'İyi'
WHEN 5 THEN 'Pekiyi'
ELSE 'Aralık Dışı Değer'
END

Yukarıdaki ifade tek başına yazılmaz, bir SELECT deyimi içine yazılır. medeniDurum değeri
1 ise Bekar, 2 ise Evli , hiç biri değilse else tarafında bulunan bilinmiyor değeri gelir.
İkinci CASE yazımı
CASE
WHEN koşul1 THEN sonuç1
WHEN koşul2 THEN sonuç2
…….
ELSE sonuçn
END

Örnek 1:
CASE
WHEN medeniDurum=1 THEN 'bekar'
WHEN medeniDurum=2 THEN 'evli'
ELSE 'Dul'

END


IF… ELSE… deyimi

Batch içinde koşula bağlı olarak dallanma yapar

IF koşul
Sql deyimi
Koşul doğru ise devamındaki sql deyimi çalışır. Yanlış ise çalışmaz.
IF koşul
Sql deyimi (1)
ELSE

Sql deyimi (2)

Koşul doğru ise 1. sql deyimi, yanlış ise 2. sql deyimi çalışır.
Eğer sql deyimi bir den fazla satır dan oluşursa BEGIN …. END arasında yazılır.
Örnek:
DECLARE @isim varchar(20)
SELECT @isim='irfan'
IF @isim = 'mehmet'
PRINT @isim + ' Coşkun'


WHILE döngüsü
While yapısı bir sql deyiminin tekrarlanmasını sağlar. Koşul yanlış oluncaya kadar döngü

çalışır.
BREAK : döngüden koşul sağlanmadan yani erken çıkılmasını sağlar.

CONTINUE : devamındaki satırlar işlenmeden döngünün ilk satırına dönülmesini sağlar.

Genel ifade
WHILE koşul
Sql deyimi
Veya
WHILE koşul
BEGIN
Sql deyimleri
END
Veya
WHILE koşul
BEGIN
Sql deyimi
Koşula bağlı BREAK deyimi
Sql deyimi
Koşula bağlı CONTINUE deyimi
Sql deyimi
END
Örnek:1 den 12 ye kadar sayıları yazdıralım.
DECLARE @sayi int
SELECT @sayi=1
WHILE @sayi<=12
BEGIN
PRINT @sayi
SELECT @sayi = @sayi + 1
END
Örnek : Önceki örnek gibi, 1’den 30 kadar döngüyü çalıştıralım. 1’den 24’e kadar yazdıralım.
25 olunca döngüden çıkalım.
DECLARE @sayi int
SELECT @sayi =1
WHILE @sayi <=30
BEGIN
PRINT @sayi
IF @sayi = 24 
BREAK
SELECT @sayi=@sayi+1
END
Örnek : 1 den 30 a kadar yazdıralım. Ancak 15-20 arası yazılmasın.
DECLARE @sayi int
SELECT @sayi=0
WHILE @sayi < 30
BEGIN
SELECT @sayi=@sayi+1
IF @sayi between 15 and 20 
continue
PRINT @sayi
END

0 yorum:

Yorum Gönder

 
© 2014 İrfan Blog ' s | Mehmet İrfan ErdoğanTüm Hakları Saklıdır | r