Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Tek Tablo İçinde Sorgulamalar

Benzer bir sunumlar


... konulu sunumlar: "Tek Tablo İçinde Sorgulamalar"— Sunum transkripti:

1 Tek Tablo İçinde Sorgulamalar
Hafta 3-2

2 Tekrarlı 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

3 Select distinct no from notlar
Örnek: select no from notlar Select distinct no from notlar

4 Sorgu 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.

5 Sıralama işlemi artan veya azalan sıralama şeklinde yapılabilir.
Artansütun isminden sonra ASC Azalan DESC Bu ifadeler kullanılmadığı durumlardan default olarak artan sıralama yapılacaktır.

6 Not: 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!!

7 Uyarı: 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 asc veya select * 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 desc veya select * from notlar where no= order by 5 desc

10 Birden 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.

11 Select * 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ütun2 Sütun 1 e göre azalan, sonra sütun1 deki değerler de sütun2 ye göre artan sıralama yapılacaktır.

12 Sütunlar İçin Takma İsim Kullanma
Sorgulama sonucu sütun ismini değiştirmek için AS ifadesi kullanılır Tabloda 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

14 Sü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.

15 Sü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 komutuyla Bazı 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

17 Koş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

18 Tarih 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

20 Birden 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>60 NOT operatörü koşulun tersini belirtmek için kullanılır. IN,LIKE,NULL VE BETWEEN ifadeleriyle birlikte kullanılabilir.

21 Koşula bağlı sorgulamalarda işlem önceliği;
Karşılaştırma operatörleri NOT AND OR Birden 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.

22 Between …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 sondeger Sayısal karakter ve tarih türündeki veriler sorgulanabilir.

23 Joker 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

24 NULL 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

25 Uygulamalar Tü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.


"Tek Tablo İçinde Sorgulamalar" indir ppt

Benzer bir sunumlar


Google Reklamları