SQL, veritabanlarında dinamik işlem ve sorgulama yapabilmek için çeşitli araçlar sunar. Bu araçlardan biri de değişkenlerdir. SQL değişkenleri, belirli bir değeri saklamak ve gerektiğinde bu değeri kullanmak amacıyla tanımlanır. Bu yazıda, SQL değişkenlerinin nasıl tanımlanacağı, değerlere nasıl atanacağı, ve değişkenlerin kullanıldığı çeşitli senaryolar hakkında detaylı bir açıklama yapacağız.
- Değişken Tanımlama
SQL’de değişkenler, DECLARE komutu ile tanımlanır. Tanımlanan değişkenlerin veri tipi belirlenmelidir. Örneğin, tam sayı (integer) değerler için int, metin değerleri için varchar gibi veri tipleri kullanılır.
declare @x int -- @x adında bir integer değişkeni tanımlanır
declare @y int = 55 -- @y değişkeni 55 değeriyle başlatılır
declare @z int, @ad varchar(15) -- @z ve @ad değişkenleri tanımlanır
İlk satırda @x adında bir tamsayı (integer) değişkeni tanımlanır. İkinci satırda, @y değişkeni 55 değeriyle başlatılır. Üçüncü satırda ise @z ve @ad değişkenleri tanımlanır; @z için bir tamsayı, @ad için ise en fazla 15 karakter uzunluğunda bir metin (varchar) tipi belirlenmiştir.
- Değişkene Değer Atama
Bir değişken tanımlandıktan sonra, SET komutu ile ona değer atanabilir. Örneğin:
set @x = 7
Bu satırda, daha önce tanımladığımız @x değişkenine 7 değeri atanır. Artık @x değişkenini 7 değeri ile kullanabiliriz.
- Bir Hesaplama Sonucu Değer Atama
Veritabanı üzerinde sorgu yaparak bir değeri değişkene atamak da mümkündür. Aşağıdaki örnekte, deneme_view adlı görünümdeki "Beverages" kategorisindeki toplam satışların sayısı bir değişkene atanır:
declare @a int
set @a = (select sum([Toplam Satış]) from deneme_view where Kategori = 'Beverages')
print 'Toplam Adet: ' + cast(@a as varchar(5))
Bu satırlarda, deneme_view adlı görünüme sorgu gönderilerek "Beverages" kategorisindeki toplam satışlar toplanır ve bu değer @a değişkenine atanır. Ardından, @a değişkeninin değeri print komutu ile ekrana yazdırılır.
- Veritabanından Veri Çekerek Değişkene Atama
SQL değişkenleri, veritabanından veri çekmek ve bu veriyi saklamak için de kullanılabilir. Örneğin, Personeller tablosundaki belirli bir personelin ad ve soyadını almak için şu sorgu kullanılabilir:
declare @ad varchar(20), @soyad varchar(20)
select @ad = adi, @soyad = soyadi from Personeller where PersonelID = 5
print @ad + ' ' + @soyad
Bu örnekte, Personeller tablosunda PersonelID = 5 olan kişinin ad ve soyadı, sırasıyla @ad ve @soyad değişkenlerine atanır ve ekrana yazdırılır.
- Veri Güncelleme ve Değişken Kullanımı
Veritabanındaki bir tablonun verilerini değiştirmek için UPDATE komutu kullanılabilir. Güncelleme işlemlerinde değişkenleri kullanarak daha dinamik ve esnek çözümler oluşturmak mümkündür.
declare @oran1 real = 0.4
declare @oran2 real = 0.9
update [Satis Detaylari] set İndirim = @oran1 where BirimFiyati * Miktar > 500
update [Satis Detaylari] set İndirim = @oran2 where BirimFiyati * Miktar < 500
Bu örnekte, Satis Detaylari tablosunda, birim fiyatı ile miktar çarpımının 500'den büyük olan satırlara @oran1 değeri (0.4), küçük olanlara ise @oran2 değeri (0.9) atanır. Bu tür dinamik güncellemelerle, veritabanındaki verilere göre esnek işlemler yapılabilir.
- Satır Sayısını Alma (RowCount)
Bir sorgu sonucunda dönen satır sayısını öğrenmek için @@ROWCOUNT komutu kullanılır. Bu, özellikle büyük veri setleri ile çalışırken faydalıdır.
declare @sira int
select * from Personeller
set @sira = @@rowcount
print 'Tabloda ' + cast(@sira as varchar) + ' kayıt var.'
Bu sorguda, Personeller tablosundan tüm veriler alınır ve dönen satır sayısı @@ROWCOUNT komutu ile @sira değişkenine atanır. Ardından, bu sayı ekrana yazdırılır.
- IDENTITY Değeri Kullanımı
Veritabanında otomatik artan (identity) bir sütuna veri eklerken, @@IDENTITY komutu son eklenen değeri alır.
create table rowcountdeneme(
id int identity
)
insert into rowcountdeneme default values
print @@identity
Bu örnekte, rowcountdeneme tablosuna bir yeni satır eklenir ve id sütunu otomatik artan bir değerle dolacaktır. @@IDENTITY komutu ile son eklenen id değeri elde edilir.
- Veritabanı Güncellemeleri ve Sonuçların Görüntülenmesi
Veritabanındaki verileri güncelleyebilir ve sonrasında bu verileri sorgulayıp görüntüleyebilirsiniz. Aşağıdaki örnekte, belirli bir personelin unvanı güncellenmiştir:
update Personeller set UnvanEki = 'Ms.' where PersonelID = 13
select * from Personeller
Bu sorguda, Personeller tablosunda PersonelID = 13 olan kişinin unvan eki 'Ms.' olarak güncellenir. Sonrasında tablodaki tüm veriler ekrana yazdırılır.
Bu yazıda SQL değişkenlerinin tanımlanması, değer atanması, veri çekilmesi ve güncellenmesi gibi temel SQL operasyonları ele alınmıştır. SQL değişkenleri, sorgularda esneklik sağlar ve veritabanı işlemlerini daha dinamik hale getirir. Değişken kullanımı, özellikle karmaşık işlemler ve prosedürlerde veritabanı yönetimini önemli ölçüde kolaylaştırır.