MsSQL Komutları 2

Merhaba arkadaşlar, SQL Komutlarım I ‘ in devamı niteliğindeki bu makalemde sizlere matematik sorgu komutlarından, sütunları nasıl gruplandırma yapacağımızdan ve gruplandırılmış sütunlara nasıl koşul koyacağımızdan bahsetmeye çalışacağım

SQL KOMUTLARIM -II
Merhaba arkadaşlar, SQL Komutlarım I ‘ in devamı niteliğindeki bu makalemde sizlere matematik sorgu komutlarından, sütunları nasıl gruplandırma yapacağımızdan ve gruplandırılmış sütunlara nasıl koşul koyacağımızdan bahsetmeye çalışacağım. Alet çantamızı bir an önce dolduralım ki ilerleyen makalelerimizde daha kompleks projelere imza atalım.Eee o zaman hadi başlayalım.

MATEMATİKSEL SORGU KOMUTLARI
Max: Sütundaki en yüksek değeri bulmamıza yarar.

Gördüğümüz gibi fiyat sütunundaki en yüksek değeri verdi.
Min: Sütundaki en küçük değeri bulur.

Sum: Sütun toplamını bulur. Sayısal veri içeren bir sütunun toplamını hesaplamak isterseniz komutlarınız şöyle olmalıdır.

Fiyat sütunundaki verilerin toplamı karşımıza geldi. Mesela bir marketin günlük satışlarının toplamını tek tuşla ekranımıza getirebiliriz. Olay yukarıdaki kodlardan ibarettir. Evet yazılıma gönül vermiş dostlarım, matematiksel sorgu komutlarına hız kesmeden devam ediyoruz.
Avg: Bu sorgu sayısal veri içeren sütunun ortalamasını verir.

Gördüğünüz gibi fiyat sütununun ortalaması karımıza gelmiştir. Bu tür uygulamalar bir topluluktaki insanların yaş ortalamasını bulmakta, gelir dağılımı gibi değişik alanlarda kullanılabilinir. Biz burada bir koşula göre de ortalama aldırabiliriz. Mesela Fiyatı 350 dolardan büyük olan ürün fiyatlarını aldıralım. Kodlarımız aşağıdaki gibi olacaktır.

Count: Kayıt sayısını bulmamıza yarar. Tablomuzdaki kayıt sayısını istediğimiz koşulları ekleyerek bulabiliriz.

Sorgumuzda yazdığımız “ * “ yerine herhangi bir sütun ismi de yazabilirdik. Ama o sütunda herhangi bir satıra veri girilmeyip boş geçilirse kayıt sayısı eksik döner, yani ismini yazdığımız sütunun boş olmayan kayıt sayısını döndürür. Eğer kullandığımız sütun primary index ise zaten boş geçilmeyeceğinden Count(*) ile aynı değeri verecektir.
Group By: Gururlandırma yapmaya yarayan sorgumuzdur. Mesela sorgumuzda aynı marka ismine sahip olanlar için verilen faturaların toplamını tek bir kayıtta yazdırmak istersek Group By ‘ı kullanmamız gerekir. Hemen deneyelim, Yazılım okuyarak değil yazarak öğrenileceği için sizinde yazmanızı tavsiye ediyorum.

Evet arkadaşlar mavi renkli satırları dikkatlice inceleyecek olursak 2 tane HP, 2 tane TOSHIBA ürününü aynı satıra alınmış. Buda Group By ın marifeti J
Having: Gururlandırılmış sütunlara koşul koyar.
Şimdi size bir soru sormak istiyorum. Bir şirkette çalışıyorsunuz ve müdürünüz sizden sadece 1 kere satılmış markaların listesini istiyor. Ne yapardınız?
Bence düşünmeyi bırakın ve bir anca Having sorgusunu faaliyete geçirin yoksa kovulacaksınız

İşlem tamamdır arkadaşlar.. Ne yaptığımızı adım adım inceleyelim isterseniz. İlk önce istediğimiz sütun başlıklarını seçtik. Daha sonra Urun Markasına göre grupladık ve grupladığımız sütunun altındaki kayıtlara Having metodu ile koşul koyduk, sadece bir kere girilen kayıtları getirmesini emrettik ve geldi.Ne güzel dimi, Ben Sql i gerçekten çok seviyorum arkadaşlar, devamlı emrediyorsunuz ve anında emirleriniz yapılıyor, ama doğru emretmesini bilek gerekir.
Önemli Bilgi: Having yapısı Group By dan sonra kullanılması gerekir. Eğer sorgunuzda Group By yoksa having yapısını kullanamazsınız. Çünkü having yapısı gruplandırılmış sütunlara koşul koyar.
Where: Sorguya koşul koyar. Yukarıdaki komutlarla istediğimiz gibi sorgu oluşturabiliriz ama where ile bir kriter koyarak listeleme yapabiliriz.
Mesela ürün markası toshiba olanları listeleyelim.

Şimdide fiyatı 1000 dolardan fazla olan ürünleri getirelim.

Sonuç olarak karşımıza 1000 dolardan pahalı ürünler geldi.
And: Aynı anda birden fazla koşulu sağlamak için kullanılır. Mesela Hem Urun marka Toshiba olacak, hem Laptop olacak hemde fiyatı 1500 dolardan fazla olacak. Bu sorguyu yazmayı deneyelim.

Where komutundan sonra her şartımızın arasına and komutumuzu yerleştiriyoruz, bu sayede istediğimiz kadar şartı aynı anda sağlayabiliriz.
Or: Şartlardan sadece birinin geçerli olduğu durumlarda çalışmayı sağlayan komuttur. Mesela LG veya HP olan ürünleri listeleyelim.

Not: Or ile and ‘i sakın krıştırmayalım. And ‘de bütün koşulları sağlaması gerekir.Ama or da sadece bir koşulun varlığı yeterlidir.
in: Bu komut sayesinde de birden fazla koşul verebiliriz ama dikkat etmemiz gereken en önemli husus aynı sütuna ait değerleri girmemiz gerekmektedir.
Bir örnek üzerinde açıklayalım. Mesela ürün markası sadece toshiba ve hp olan ürünleri listeleyelim.

Urün marka sütununa baktığımızda sadece istediğimiz ürünler karşımıza geldi. Parantez içine yazdığımız kelimeler aynı sütun içersinde yer alması zorunludur yoksa kodumuz yanlış olacaktır.
Not in: Bu sorgumuz ise in komutunun tam tersidir. Yani yazdığımız koşulun sağlanmadığı durumdur.
Bir örnek üzerinde daha iyi anlaşılacağı kanaatindeyim. Bu seferde Urün markası TOSHIBA ve HP olmayan ürünleri getirsin.

Ürün marka sütununa baktığımızda istemediğimiz ürünler gelmedi.
Between: Belirli bir aralıktaki verileri sorgulamak için kullanırız. Mesela Fiyatı 100 dolar ile 500 dolar arasındaki

ürünleri sıralayalım.

Gördüğümüz gibi kullanımı çok basit, aşağıdaki ifade de bu sonucu bize verir.
select*from Satis where Fiyat>=100 and Fiyat<=500
Like: Sütun içinde arama yapar. Mesela sadece baş harfini verip ona uyan sütunları ekrana çağırabiliriz.
Kullanım şekli;
Mesela T harfiyle başlayan kayıtları bulmak için ‘T%’ , T harfiyle biten kayıtları bulmak için ‘%T’ ifadesini kullanırız. Eğer içinde T harfi olan kayıtları istersek ‘%T%’ ifadesini kullanırız.
Hadi o zaman birkaç örnekle deneyelim sevgili dostlar.

Bakın T harfi ile başlayan markalar geldi.
İçinde T harfi olan markaları görmek istersek şöyle yazarız.

Eveeett sevgili arkadaşlar geldik bir makalemizin daha sonuna umarım sizlere azda olsa yardımcı olmuşumdur. Size tavsiyem bu ve buna benzer örnekleri bolca yazarak yapmak. İşimiz yazmak değimli zaten SQL Komutlarım –III te görüşmek üzere.

(Toplam: 14, Bugün: 1 )

Leave a reply: