SQL SERVER 2008 Yücel YILDIRIM
Ajanda Genel Tekrar Sorgu Sonuçlarını Filtreleme Verileri Özetlemek ve Gruplandırmak Tabloları Birleştirmek Alt Sorgular Tekrar
Sorgu Sonuçlarını Filtreleme Where İfadesiyle Birleştirme: SELECT * FROM [Tablo_adı] WHERE [koşul] Ör:SELECT * FROM Ogrenciler WHERE No=2345 Karşılaştırma Operatörleri: “=,>,<,>=,<=,<>(eşit değil)” LIKE deyimi: WHERE [KolonAdi] LIKE ‘(koşul)*’ *Koşullar: 1.’A%’A ile başlayan 2.’A__’A ile başlayan 3 harfli sözcükler 3.’A[lt]%’A ile başlayan 2. harfi l ya da t olan 4.’[^AE]%’ Baş harfi a ya da e olmayan 5.’%A%’ İçinde a geçenler
Sorgu Sonuçlarını Filtreleme OR Operatörü: Kullanımı:WHERE [koşul1] OR [koşul2].. OR [koşul_n] AND Operatörü: Kullanımı:WHERE [koşul1] AND [koşul2]… AND [koşul_n] IN Operatörü:(Bir çok Or yerine kullanılabilir) Kullanım:WHERE [kolon_adi] IN(‘değer1’,..,’değer_n’) BETWEEN Operatörü:Belirli bir Aralığa göre filtreler. (AND yerine kullanılabilir) Kullanım:WHERE [kolon_adi] BETWEEN [değer1] AND [değer2]
Sorgu Sonuçlarını Filtreleme NULL Olan Değerleri Filtrelemek: Kullanım: WHERE [kolon_adi] IS NULL NULL Olmayan Değerleri Filtrelemek: WHERE [kolon_adi] IS NOT NULL Koşul dışında kalanları listelemek: NOT {LIKE,IN,BETWEEN,NULL}
Verileri Özetlemek ve Gruplandırmak KÜMELEME (Aggrate) FONKSİYONLAR: Kayıt Sayısı Bulma:(COUNT) Kullanım:SELECT COUNT([*] | [kolon_adi])… (Dönen değer int ‘den büyükse COUNT_BIG kullanılır) Toplam Alma(SUM) Kullanım:SELECT SUM(sayısal_kolon_adi)… En Büyük Değeri Bulmak(MAX) Kullanım:SELECT MAX(kolon_adi)… En Küçük Değeri Bulmak(MIN) Kullanım:SELECT MIN(kolon_adi)… Ortalama Değeri Bulmak(AVG) Kullanım:SELECT AVG(sayısal_kolon_adi)…
Verileri Özetlemek ve Gruplandırmak Sonuç Kümelerini Gruplamak:(GROUP BY) Kullanım:*Kümeleme fonksiyonları ile kullanılır SELECT Cinsiyet,COUNT(*) FROM Calisanlar GROUP BY Cinsiyet Grup İçerisinde Filtrelemek(HAVING): Kullanım: SELECT UrunID,Sum(Miktar) As Toplam FROM Urunler GROUP BY UrunID HAVING Sum(Miktar)<100 *Top ,Order By kullanılabilir *TABLESAMPLE Operatörü: Select ile gelen kayıt listesinden rastgele belirtilen miktarda kayıt göstermek için kullanılır(TOP gibidir ancak rastgele kayıt getirir.) SELECT * FROM tablo TABLESAMPLE(10 Percent|ROWS) gibi kullanılır.
Verileri Özetlemek ve Gruplandırmak Sonuç Kümelerinde Toplam ve Ara Toplamlar Elde Etmek: *ROLLUP,CUBE,GROUPING :GROUP BY ile kullanılarak ara toplamlar elde edilebilir. ÖR:SELECT Cinsiyet, GROUPING(Cinsiyet), MedeniHal, GROUPING(MedeniHal), COUNT(*) FROM Calisanlar GROUP BY Cinsiyet,MedeniHal WITH [CUBE],[ROLLUP] ROLLUP:Aratoplam alır,metindeki NULL değerli satırlar gösterir CUBE:Muhtemel tüm kombinasyonlar için toplam ve alt toplam alır GROUPING:Sonuç setinde hangisinin detay hangisinin toplam satırı olduğunu belirtir.
Verileri Özetlemek ve Gruplandırmak COMPUTE ve COMPUTE BY: Toplamlar için sonuç setine yeni satırlar ekler ANSI standardı değildir. Ntext,Text,Image için kullanılmazlar… COMPUTE:Tek bir değer için toplam alır. COMPUTE BY:Birden fazla değer üretmeyi sağlar. Ör:SELECT Ad,ListeFiyatı FROM Urunler COMPUTE SUM(ListeFiyatı) [BY Ad]
Tabloları Birleştirmek JOIN INNER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN CROSS JOIN SELF JOIN INTERSECT EXCEPT
Tekrar…