Sql Server

Sql Server top Kullanımı

Herkese merhaba, Sql Server yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda top komutunu anlatacağım. Hadi başlayalım !

top komutu sadece select, update ve delete komutları ile birlikte kullanılan bir komut. delete ve update ile kullanımında fonksiyon gibi yani top() şeklinde, select ile kullanımında ise hem fonksiyon hemde komut gibi yani top şeklinde kullanabilirsiniz. select komutu ile kullanımında örneğin 1000 tane veri olan bir tablonuz var diyelim, bu 1000 veri arasından ilk 100 tanesini getirmek istiyorsanız top komutunu kullanabilirsiniz. Bu komutun select ile kullanımında yazım kuralı şöyledir;

select top veri_sayısı [percent] (sütun1, sütun2, ..., sütunn) | * from tablo_adı [where koşul]

Burada (sütun1, sütun2, …, sütunn) ile * arasından bir tanesini yazmanız gerekiyor. Yani sadece belirli sütundaki verileri getirmek istiyorsanız o sütunların isimlerini aralarına virgül koyarak yazacaksınız yada tüm sütunları getirmek istiyorsanızda * ifadesini kullanacaksınız. veri_sayısı kısmına da getirmek istediğiniz veri sayısını yazıyoruz. [where koşul] kısmı da standart select sorgusundaki where koşulu anlamına geliyor. Yani tablo üzerindeki verilerde bir filtreleme yapacaksanız where ifadesinden sonra filtre koşullarını yazacaksınız ve sorguyu tamamlayacaksınız. percent ise top komutunun başka bir kullanım şekli. percent yazarsanız veri_sayısı kısmına yazdığınız sayı kadar yüzdelik veri getirir. Yani örneğin percent 10 derseniz tüm verilerin yüzde 10’unu, 25 yazarsanız %25’ini, 0.5 yazarsanız %0.5’ini getirir. percent ile yüzdelik oranda veri getirecekseniz veri_sayısı kısmının sıfır ile yüz arasında olması gerekiyor ve ondalıklı sayı da olabilir. percent olsun yada olmasın sıfır yazarsanız hiç veri getirmez, percent 100 yazarsanız tüm verileri getirir. Ayrıca yüzdelik dilimi noktalı çıkan veri sayısında da bir üst tam sayıya yuvarlayarak getiriyor. Yani tabloda 100 veri var diyelim ve percent 25.5 dediniz. 25 veri tamam da 0.5 veri olmayacağı için 26 veri getirir. 25.1 yazarsanız da yine 26 veri getirecektir. percent kullanmayacaksanız da veri_sayısı kısmının tam sayı olması gerekiyor.

Örneğin bizim kitaplar tablomuz olsun ve bu tablodan ilk 100 veriyi getirelim. Ardından tüm verilerin %10’unu getirelim.

select top 100 * from kitaplar;
select top(10) percent * from kitaplar;

delete komutu ile birlikte kullanımında istediğimiz kadar veriyi siliyor. Yani örneğin ilk 100 veriyi silmek istediğinizde top komutunu kullanabilirsiniz. select komutunda olduğu gibi percent ile birlikte kullanımı da yine mevcut. delete komutu ile birlikte kullanımında kod yapısı şöyle olacaktır;

delete top(veri_sayısı) [percent] from tablo_adı [where koşul];

[where koşul] kısmı standart delete komutundaki gibi verileri belirli bir filtreye göre silmek istediğimizde yazmamız gerekiyor. Tüm verileri silecekseniz where ile bir filtre yapmanıza gerek yok. Örneğin az önce bahsettiğim kitaplar tablosunda int tipte basimYili sütunu olduğunu varsayalım ve önce ilk 100 veriyi, sonra basimYili değeri 2000’den küçük olan ilk 50 veriyi, sonra tüm verilerin %10’unu ve son olarakta basimYili değeri 2000’den küçük olanların %5’ini silelim.

delete top(100) from kitaplar;
delete top(50) from kitaplar where basimYili < 2000;
delete top(10) percent from kitaplar;
delete top(5) percent from kitaplar where basimYili < 2000;

update komutu ile birlikte kullanımında ise tıpkı delete komutuyla kullanımındaki gibi top(veri_sayısı) şeklinde yani fonksiyon gibi yazmamız gerekiyor. Bu komutun yapısı da şöyle oluyor;

update top(veri_sayısı) tablo_adı set sütun1=veri1, sütun2=veri2, sütun3=veri3, ... [where koşul]

Buradaki [where koşul] kısmı tıpkı select ve delete komutlarında olduğu gibi verileri belirli bir kritere göre değiştirmek istiyorsak yazıyoruz, tüm veriyi değiştireceksek yazmıyoruz. sütun1=veri1, sütun2=veri2, sütun3=veri, … kısmında ise güncellemek istediğimiz sütunların yeni değerlerini yazıyoruz. Artık kaç tane sütunu güncelleyeceksek o kadar sütunu aralarına virgül koyarak yazmamız gerekiyor. Tabi sütunların yeni değerlerini yazarken sütunun veri tipine uygun bir şekilde yeni değerleri yazmamız gerekiyor. Yani metinsel biçimde olan sütunların yeni değerlerini tek tırnak işareti içine almamız gerekiyor.

Örneğin delete ve select komutlarında dediğim kitaplar tablosuna bir tane de varchar tipte kitapAdi sütunu eklediğimizi varsayalım ve bu tablodan önce ilk 100 verinin basimYili sütununu 2023, sonra kitapAdi değeri Softwaresup olan ilk %10 verinin kitapAdi sütununu da SoftwareSup yapalım.

update top(100) kitaplar set basimYili=2023;
update top(10) percent kitaplar set kitapAdi='SoftwareSup' where kitapAdi='Softwaresup';

Evet top ve top percent komutlarının kullanımı bu şekilde. Tüm Sql Server yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu