2Tekrarlı Satırları Önlemek-Distinct Tekrar eden kayıtların sadece bir kez görüntülenmesi için DISTINCT ifadesi kullanılır.SELECT DISTINCT sütunlar FROM tablo_adiÖrnek: select no from notlar
3Select distinct no from notlar Örnek: select no from notlarSelect distinct no from notlar
4Sorgu Sonucunu Sıralama Yapılan sorgulamaların sonuçları kayıtların yapılma sırasına göre listelenir.Yapılan sorgunun istenilen bir veya birden fazla sütuna göre sıralanması için tablo adından sonra ORDER BY ifadesi kullanılır ve sıralama hangi sütuna göre yapılacaksa o sütunun ismi yazılır.
5Sıralama işlemi artan veya azalan sıralama şeklinde yapılabilir. Artansütun isminden sonra ASCAzalan DESCBu ifadeler kullanılmadığı durumlardan default olarak artan sıralama yapılacaktır.
6Not: Karakter türündeki bir sütunun içerdiği değerler sayısal ise sıralama işlemi doğru sonuç vermeyecektir.Örneğin karakter türündeki bir sütunun değeri 15,16, 9,86 şeklinde olduğunda sıralama sonucu 15,16,86,9 şeklinde olacaktır ve bu doğru bir sonuç değildir.86 daki 8 değeri karakter olarak 9 dan küçük olduğu için bunu daha önce sıralamaktadır.Bu tür hatalara düşmemek için sütun tipleri doğru belirlenmelidir!!
7Uyarı: Sıralama yapılırken sıralama yapılacak sütun isimleri belirtildiği gibi sütun ismi yerine sütun numarası da kullanılabilir.Tablo içerisindeki sütunlar 1 den başlayarak sütun sayısı kadar devam eder. ORDER BY ifadesinden sonra sütun numarası yazıldığında da yine sıralama işlemi yapılacakdır.Örn: ORDER BY 2 DESC tablodaki 2. sütuna göre azalan sıralama yap.
8Örnek: Öğrenci no su 5530535 olan öğrencinin not bilgilerini vizeye göre artan sıralama yapan sorgu; select * from notlar where no= order by vize ascveyaselect * from notlar where no= order by 3 asc
9Örnek: Öğrenci no su olan öğrencinin not bilgilerini finale göre azalan sıralama yapan sorgu;select * from notlar where no= order by final descveyaselect * from notlar where no= order by 5 desc
10Birden fazla sütuna göre sıralama Sıralamaların yapılacağı referans sütunlar aralarına virgül konularak yazılır.İlk sütuna göre tüm kayıtlar sıralanacaktır, daha sonra sıralama diğer sütunlara göre kayıtların tamamını değil ilk sıralama sonucunda oluşan sonuçlar içerisinde aynı değere sahip olan kayıtları sıralayacaktır.
11Select * from tablo_adi order by sütun1,sütun2 İlk önce sütun1 e göre artan , daha sonra sütun2 değerine göre artan sıralama yapılır.Select * from tablo_adi order by sütun1,sütun2 descİlk önce sütun1 e göre artan sıralama ,daha sonra sütun1 içerisindeki kayıtlar da sütun 2 ye göre azalan sıralama yapılacaktır.Select * from tablo_adi order by sütun1 desc , sütun2Sütun 1 e göre azalan, sonra sütun1 deki değerler de sütun2 ye göre artan sıralama yapılacaktır.
12Sütunlar İçin Takma İsim Kullanma Sorgulama sonucu sütun ismini değiştirmek için AS ifadesi kullanılırTabloda herhangi bir değişiklik olmaz!Sadece o anki sonuç için geçerlidir.Select sütun_adi1 AS takma_adi1, … from tabloadi
13Örn:select no, op_kod as "Dersin optik kodu" from notlar
14Sütunlar Üzerinde Matematiksel İşlemler Select ifadesinde +,-,*,/ işlemleri yapılabilir.Matematikteki işlem önceliği burdada geçerlidir.Null değerler üzerinde yapılan işlemlerin sonucu yine null değer olacaktır.
15Sütunların Birleştirilmesi Sütunların içerdiği değerleri başka karakterle veya sütunla birleştirerek aynı sütunda gösterme.Oracle da || MS Sql server da + MySql de Concat komutuylaBazı veritabanı sistemlerinde farklı tipteki sütunların birleştirilmesi sırasında hata oluşabilir.
16Örnek:select h_adi +h_soyadi as "Hoca Bilgi" from hocalar
17Koşula Bağlı Sorgulamalar WHERE ifadesi ile koşul belirtilir.Order by ve where birlikte kullanılacaksa öncelikle where yazılmalı daha sonra order by yazılmalıdır.SELECT * FROM tabloadi WHERE sütun=deger ORDER BY sütun_adi
18Tarih Türündeki Sütunlar İçin Koşul İfadesi Tarih tipindeki bir sütun koşul ifadesinde kullanılacaksa , koşul ifadesi kullanılan veritabanı sistemi ve bilgisayarın tarih formatına göre değişiklik gösterebilir.Özellikle bölgesel ayarlar tarih formatının değişimini büyük oranda etkilemektedir.MS SQL server da varsayılan tarih formatı ‘ ’ şeklindedir. Koşul ifadesinde yazılan değerin formatı da bu şekilde (yyyy-mm-dd) olmalıdır.
19Örn: select * from tablo where tarih<‘2010-10-03’. Oracle da DD.MM.YYYY veya DD/MM/YYYY
20Birden Fazla Koşula Göre Sorgulama AND ve OR operatörleri koşulları birleştirmede kullanılmaktadır.Ör: select * from notlar where vize>50 and final>60Ör: select * from notlar where vize>50 or final>60NOT operatörü koşulun tersini belirtmek için kullanılır.IN,LIKE,NULL VE BETWEEN ifadeleriyle birlikte kullanılabilir.
21Koşula bağlı sorgulamalarda işlem önceliği; Karşılaştırma operatörleriNOTANDORBirden fazla koşul belirtilirken parantez kullanılırsa öncelik parantezindir.Örnek: select * from Personel where sehir=‘Ankara’ or adi=‘Ayşe’ and gorevi=‘Muhendis’AND operatörünün OR operatörüne göre üstünlüğü olduğu için adi=‘Ayse’ ve gorevi=‘Muhendis’ koşulları bir bütün olarak çalışacak, sehir=‘Ankara ’koşulu da bağımsız olarak çalışacaktır.
22Between …And …İki değer arasındaki verileri sorgulamak için kullanılır.Between ifadesi başlangıç ve bitiş değerleri dahil olmak üzere sorgulama yapar.Select * from tablo_adi Where referans_sütun between ilkdeger and sondegerSayısal karakter ve tarih türündeki veriler sorgulanabilir.
23Joker Karakter Kullanara Sorgulama LIKE ifadesi ile kullanılır.%,-,[HARF],[^HARF],[A-Z]Örnek Kullanımlar;‘[BD]%’ ilk harfi B veya D olan‘[7-8][0-9]’ 70 ile 89 arasında‘[A-M]%’ İlk harfi A ile M arasında[^B-M][^MOZ][A-Z]3 harften oluşan ilk harfi B ile M arasında olmayan ,ikinci harfi M,O,Z harflerini içermeyen ve üçüncü harfi A ile Z arasında olan
24NULL Değer Sorgulama IS NULL IS NOT NULL Tüm veri tabanı yönetim sistemleri için aynıdır.Örnek: select no , op_kod from notlar where vize is null or final is nullÖrnek: Select no , op_kod from notlar where mazeret is not null
25UygulamalarTüm öğrencilerin isimlerini sınıfa göre azalan sıralamada gösteriniz.Bölüm kodu 530 ile 535 arasında olan öğrencilerin bilgilerini listeleyiniz.(koşulu like ile gösteriniz.)Bölüm adı Yapı ile başlayan bölümlerin bölüm kodlarını tekrarlı olmayacak şekilde gösteriniz.Vize notu boş olmayan not bilgilerini listeleyiniz.3. sınıfta okuyan veya adı Veli olan öğrencileri listeleyiniz.Öğrencilerin vize notunun %40 final notunun %60 ını alarak «ortalama» olarak adlandırılan sütunda gösteriniz.Öğrencilerin bilgilerini sınıfa göre artan ve ada göre azalan şekilde sıralayarak listeleyiniz.Toplam ders saati 10 dan fazla olan ve soyadi ‘r’ ile biten hocaları listeleyiniz.Memleketlerin isimlerini, telefon kodu azalacak şekilde ve memleket adı A ile başlamayan ancak son harfi M ile Z arasında olacak şeklide listeleyiniz.Doğum tarihi ile tarihleri arasında olan öğrencilerin isimlerini gösteriniz.