1-SQL DERSLERİ | SELECT SORGUSU, ORDER BY, DİSTİNCT

220
görünümler

Öncelikle “Select” nedir onu öğrenelim. Select bizim bir tablodaki verileri seçmemize yarar. “Database” klasörünün altındaki “Tables” klasöründe hangi database üzerinde çalışıyorsanız onunla ilgili tabloları görürsünüz.

Şimdi basit bir örnekle bunu açıklayalım.

selectsorgusu

Yukarıdaki kod ile  “Person” tablosuna ait bütün kolonları göstermiş oluyoruz. Bütün kolonları gösterdiğimizi nereden anlıyoruz peki? Select ten sonra  ‘ * ‘ işaretini kullanmak demek o tabloya ait bütün kolonları getir demektir. Kodun sonundaki ‘p’ harfi ise alyanstır. Alyanslar kısaltmalardır. Yani biz her defasında Person yazmak yerine sadece ‘p’ yazdıgımız zamanda aynı şeyi yapmış olacağız.

Kodun çıktısı aşağıdaki gibidir.

Selectsorgusuekranciktisi

Kodu çalıştırdığınızda size toplam 19972 adet kayıt getirecektir. Diyelim ki ben bütün kolonları döndürmek istemiyorum sadece bana gerekli olan kolonları getirmesini istiyorum. Örneğin bana gerekli olan kolonlar (FirstName,MiddleName ve LastName) olsun.

Buna göre aşağıdaki kodu yazmamız gerekmektedir.

selectsorgusu2Burada yazdığımız kodda bize “Person” tablosundaki FirstName, MiddleName ve LastName i bize sonuç olarak getirir.

Kodun çıktısı aşağıdaki gibidir.

selectsorgusu2çıktısıİş hayatında bazen öyle kayıtlarla uğraşacaksınız ki her seferinde 19972 kayıt gelmez. Bazen milyonlarca kayıtlar gelebilir. Bunun gibi durumlarda işimizi kolaylaştıracak sorgularda vardır. TOP 100 sorgusu sayesinde 19972 tane kayıt yerine tablodaki ilk 100 satırı getirip performans açısından büyük kazanç sağlamış oluruz.

selectsorgusu3Select ten sonra yazdığımız ” TOP 100 ” bize o tablonun ilk 100 satırını getirir. “TOP” tan sonraki sayı tamamen size kalmış, istediğinizi yazabilirsiniz. İster TOP 10 ister TOP 25 istersenizde TOP 50 dilediğiniz gibi yazabilirsiniz. Kodu bu şekilde yazdığımız zaman yukardada belirttiğim gibi performans açısından büyük kazanç sağlamış olursunuz.

Eğer bunu sıralamak isterseniz ” ORDER BY “ diye bir komutumuz vardır. Order by hangi kolona göre sıralamak istediğinizi söyler.

Aşağıdaki örneği inceleyelim.

selectsorgusuorderbyYukardaki sonuçlar FirstName e göre sıralandı çünkü order by kullandık. ID lerin sırası değişti ve sonuçlar FirstName e göre sıralandı.

Eğer ki ordey by den sonra NEWID( ) yazarsak bu  sefer bize sonuçları rastgele sıralamasını sağlar. Bu daha çok kuralarda işe yarayacak bir yöntem. Çünkü rastgele kendi içinde bir algoritma var  random değerler atıyor ve o şekilde yapıyor.

Kodu aşağıdaki gibidir.

selectsorgusuorderbynewidORDER BY dan sonra ” ASC “ yazarsak büyükten küçüğe doğru sıralar ,” DESC ” yazarsak küçükten büyüğe sıralar.

Diğer bir konumuz ise ” DİSTİNCT ” tagıdır. Çok kullanıcağımız bir tagdır. Özellikle transaction tablolarında çok fazla işe yarar. Transaction konusunu önümüzdeki günlerde işleyeceğiz.

Normalde biz  ” SELECT  FirstName  FROM  Person.Person ” kodunu çalıştırdığımızda bize 19972 tane kayıt geliyordu. Biz burada 19972 tane isim sıralamış oluyoruz. Ancak bu isimlerden aynı isimde olan kayıtlar olabilir. İşte bu aynı isimde olanları ayıklamak için yani kaç farklı isimde kayıt olduğunu öğrenmek için DİSTİNCT tagını kullanıyoruz.

selectsorgusudistinctNormalde gelen kayıt 19972 tane olmalıydı. Ancak “distinct” tagını kullandıgımız için bize 1018 tane kayıt getirdi. Yani tabloda 1018 farklı isimde kayıt var bunu öğrenmiş olduk. 19972 kayıtta tek tek isimleri aramak yerine “distinct” tagını kullanarak tek seferde zaman kaybetmeden kaç farklı isim olduğunu öğrenmiş olduk.

Bir sonraki derse geçmek için tıklayınız.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz