BAYRAM CONTAY

Yazılım ve teknolojiye dair her şey ilgi alanımızdır.

SQLYAZILIM

SQL #Ders 11 | Top Operatörü

SQL dersimizin bu yeni serisinde TOP fonksiyonunu göreceğiz. TOP fonksiyonu ile herhangi bir sorgu sonucunun istediğimiz kadarını veya istediğimiz bir biçimde limit belirleyerek gösterimini sağlayacağız. TOP fonksiyonu hayatımıza MS SQL 2005 ile birlikte girmiştir. Geçmişten günümüze bazı değişim veya gelişimlere uğramıştır, örneğin TOP fonksiyonu daha önceleri sadece SELECT komutu ile birlikte kullanılırken MS SQL 2012 ile birlikte INSERT, UPDATE, DELETE komutları ile birlikte de kullanılabilmektedir. Ayrıca TOP anahtar kelimesi yaygın olarak ORDER BY ile birlikte kullanılmaktadır. TOP fonksiyonu ile kullanılan bir diğer komut ise PERCENT komutudur. PERCENT kullanım şekli olarak tablodaki kayıtların yüzde(%) olarak gösterimini sağlamaktadır.

Örnek Öğrenci Tablomuz:

RIDAdSoyadYas
1AhmetTarık10
2MehmetYılmaz8
3AliHakkı14
4VeliAydın12

TOP Operatörünün SELECT İle Kullanımı

Bu script örneğinde sorgumuz bize tablodaki kayıtlardan ilk 2 adet kaydı getirecektir.

Örnek Script:

SELECT TOP 2 * FROM ogrenci;

Ekran Çıktısı:

RID Ad Soyad Yas
1 Ahmet Tarık 10
2 Mehmet Yılmaz 8

TOP Operatörünün PERCENT İle Kullanımı

Bu scirpt örneğinde ise komutumuz bize tablonun ilk baştaki kayıtlardan yüzdelik olarak yazdığımız değer kadar olan kaydı getirecek. Örneğin 4 öğrenci kaydımız mevcut. Biz burada TOP fonksiyonundan sonra 50 PERCENT yazdığımızda bize tablodaki kayıt adedinin %50’sini yarısı yani 2 adet öğrencinin kaydını getirecektir. Veya TOP 75 PERCENT yazsaydık kayıtların %75’ini alacağı için 4 adet öğrencide 3’ünü bizlere getirecektir.

Örnek Script

SELECT TOP 50 PERCENT AD FROM ogrenci;

Ekran Çıktısı:

RID Ad Soyad Yas
1 Ahmet Tarık 10
2 Mehmet Yılmaz 8

TOP Operatörünün INSERT İle Kullanımı

Bu örneğimizde ise komutumuz bize tablonun ilk baştaki kayıtlardan belirtmiş olduğumuz adet kadar yeni kayıt ekler. Örnek tablomuza göre listenin başındaki Ahmet adındaki öğrenciden tablonun altına 1 adet daha kayıt ekledi. Eğer TOP 2 yazsaydık Ahmet ve Mehmet adındaki öğrencilerden 1’er adet daha tablomuzun altına ekleyecekti, burada gireceğimiz sayı veya rakam tablodaki kayıt adedini geçmemelidir. Tablodaki sayı adedini geçseniz bile bir sorun olmayacaktır ancak tablodaki sayı adedi kadar alta ekleme yapacaktır.

Örnek Script

INSERT TOP(1) INTO dbo.ogrenci(Ad,Soyad,Yas)
SELECT Ad, Soyad, Yas FROM ogrenci

Ekran Çıktısı:

RIDAdSoyadYas
1AhmetTarık10
2MehmetYılmaz8
3AliHakkı14
4VeliAydın12
5AhmetTarık10

TOP Operatörünün UPDATE İle Kullanımı

Bu örneğimizde ise komutumuz bize tablonun ilk baştaki kayıtlardan belirtmiş olduğumuz adet kadarını güncellememize olanak tanır. Örnek tablomuza göre listenin başındaki Ahmet ve Mehmet adındaki öğrencilerimizin yaşlarını 1 yaş yükseltmek istiyoruz diyelim. Bu durumda uygulayacağımız örnek aşağıdaki gibidir.

Örnek Script

UPDATE TOP(2) dbo.ogrenci SET Yas = Yas + 1;

Ekran Çıktısı:

RIDAdSoyadYas
1AhmetTarık11
2MehmetYılmaz9
3AliHakkı14
4VeliAydın12
5AhmetTarık10

TOP Operatörünün DELETE İle Kullanımı

Bu örneğimizde ise komutumuz bize tablonun ilk baştaki kayıtlardan belirtmiş olduğumuz adet kadarını silebilmemizi sağlıyor. Örnek tablomuza göre listenin başındaki Ahmet adındaki öğrencimizden 2 adet kayıt var biz bunlardan baştakini silmek istiyoruz. Bu durumda uygulayacağımız örnek aşağıdaki gibidir.

Örnek Script

DELETE TOP(1) ogrenci;

Ekran Çıktısı:

RIDAdSoyadYas
1MehmetYılmaz9
2AliHakkı14
3VeliAydın12
4AhmetTarık10

Bu dersimizde bu kadardı. Script örneklerini yazarken kullanımlarımda bir birlerinden ufak tefek farklılar olacak şekilde yazdım mesela birinde parantezler yok birinde dbo. yok birinde noktalı virgül yok gibi bazı değişikler olmasına rağmen kodlar aynı şekilde çalışmaktadır. Burada bunlara da dikkat çekebilmek için birbirlerinden farklı olarak yazdım. Bir sonraki dersimizde görüşmek üzere…

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir