Sql sorguda değişken kullanımı bazı durumlarda çok önemli bir paya sahip olabiliyor.
Değişkenler sql ifadelerinin işlenme sırasında değer tutarlar ve tuttuğu değerler ile kontrol benzeri işlemler yapmamıza olanak sağlayabilirler.
Kısaca Sql değişken tanımlama kurallarını görelim :
DECLARE @sayi int
Değişkene değer atamak içinse 2 seçeneğimiz var:
sql declare ile bir çok çeşitte değişken tanımlayabilirsiniz.
Bazıları ;
şeklinde tanımlanabilir.
Geçici bir tablo olarak,verileri listeleme gibi işlemler için kullanabiliriz.
yukarıda @tablo adında bir tablo tipi değişken tanımlamış olduk veri ekleme ve görüntüleme işlemlerini sıradan bir tablo ile işlem yapıyor gibi yapabiliyoruz:
Örneğin yukarıda tanımladığımız değişkenimize birkaç değer ekleyelim ve ardından görüntüleyelim:
INSERT INTO @tablo(Adet,Ad) VALUES(10,'kalem'),(20,'silgi'),(30,'defter')
SELECT * FROM @tablo
sorgumuzun çıktısı aşağıdaki gibi olacaktır.
değikenleri oluşturmayı öğrendik şimdi ise yazdırmak nasıl oluyormuş onu görelim;
bir değişkeni yazdırmak için print komutunu kullanabiliriz:
DECLARE @sayi2 int=40
PRINT @sayi2
şeklinde yazdırdığımızda messages(mesajlar) kısmında değişkenin çıktısını görebilirsiniz.
2 farklı tipte değişkeni birlikte yazdırmak için tür dönüşünü yapmamız gerekir:
DECLARE @sayi3 int=30,@metin3 varchar(20)='Merhaba'
PRINT CAST(@sayi3 as varchar)+@metin3
olarak cast ile int değişkenini varchar şeklinde yazdırmış olduk.
Değişkenler sql ifadelerinin işlenme sırasında değer tutarlar ve tuttuğu değerler ile kontrol benzeri işlemler yapmamıza olanak sağlayabilirler.
Kısaca Sql değişken tanımlama kurallarını görelim :
- Sql declare ile değişken tanımlanır.
- Tanımlayacağımız değişkenlerin başında '@' olması gerekmekte ve değişkenin ilk karakterini harf ile veya '_' ile başlatabiliriz.
- Değişken adında boşluk kullanılmaz.
- Çoğu programlama dilinde de olduğu gibi değişken ismini sql ifadeleri isimleri ile aynı kullanmak gibi bir durum olamaz .
sql değişken tanımlama :
DECLARE @sayi int
Değişkene değer atamak içinse 2 seçeneğimiz var:
- Tanımlama sırasında değişkene değer atamak
DECLARE @sayi int=5
- Tanımladıktan sonra set ile atamak
DECLARE @sayi int
SET @sayi=10
gibi değer atamaları yapabiliriz.
SET @sayi=10
gibi değer atamaları yapabiliriz.
Sql değişken tipleri :
sql declare ile bir çok çeşitte değişken tanımlayabilirsiniz.
Bazıları ;
Sql tarih değişkeni tanımlama:
DECLARE @zaman DATESql metin değişkeni tanımlama:
DECLARE @metin VARCHAR(MAX)şeklinde tanımlanabilir.
Tablo Tipi Değişkenler
Değişkenler konusunda önemli olan değişken tiplerinden biriside TABLE değişkenleri tablo tipi değişkenler ile aynı anda birden fazla değerin tutulmasını sağlayabiliriz.Geçici bir tablo olarak,verileri listeleme gibi işlemler için kullanabiliriz.
Tablo tipi değişken tanımlamak için :
DECLARE @tablo TABLE (Ad varchar(20),Adet int)yukarıda @tablo adında bir tablo tipi değişken tanımlamış olduk veri ekleme ve görüntüleme işlemlerini sıradan bir tablo ile işlem yapıyor gibi yapabiliyoruz:
Örneğin yukarıda tanımladığımız değişkenimize birkaç değer ekleyelim ve ardından görüntüleyelim:
INSERT INTO @tablo(Adet,Ad) VALUES(10,'kalem'),(20,'silgi'),(30,'defter')
SELECT * FROM @tablo
sorgumuzun çıktısı aşağıdaki gibi olacaktır.
değikenleri oluşturmayı öğrendik şimdi ise yazdırmak nasıl oluyormuş onu görelim;
bir değişkeni yazdırmak için print komutunu kullanabiliriz:
DECLARE @sayi2 int=40
PRINT @sayi2
şeklinde yazdırdığımızda messages(mesajlar) kısmında değişkenin çıktısını görebilirsiniz.
2 farklı tipte değişkeni birlikte yazdırmak için tür dönüşünü yapmamız gerekir:
DECLARE @sayi3 int=30,@metin3 varchar(20)='Merhaba'
PRINT CAST(@sayi3 as varchar)+@metin3
olarak cast ile int değişkenini varchar şeklinde yazdırmış olduk.
Sql sorgusunu değişkene atama:
Değişkenlerin içine sql sorgusu atayıp değişkeni çağırarak sorgunun değişkenden çalışmasını sağlayabliriz.
Örneğin:
yukarıda gördüğünüz gibi ilk select sorgusundan sonra exec(exec yerine execute kullanılabilir.) içinde değişkenimizi yazdık ve değişkenin içinde bulunan satırı işleme aldı ardından ikinci select sorgumuzda sonucu görebilirsiniz.