LIKE etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
LIKE etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Nisan 2012 Cumartesi

21. HAVING Kullanımı

  • Toplam fonksiyonlarını kullanırken kısıtlama yapacağımız zaman WHERE özelliğini kullanamayız. 
  • HAVING yantümcesi, GROUP BY ile elde edilecek satırları kısıtlamak için kullanılır.
  •  İşlev olarak WHERE yantümcesi gibi çalışır fakat WHERE yantümcesi gruplama işlemlerinden önce, HAVING yantümcesi ise GROUP BY'dan sonra uygulanır.
Örnek: Dikkat edilmesi gereken HAVING özelliğinin gruplamadan sonra kullanıldığıdır.WHERE özelliğini FROM dan sonra normal olarak kullanabiliriz. Bu sorguda stoklarımızda 500'den az kalan ürün kategorilerimizi listeliyoruz.

Sorgu: SELECT CategoryID, SUM(UnitsInStock) AS 'Miktar' FROM Products GROUP BY CategoryId HAVING SUM(UnitsInStock)<500


Ders 22'ye geçebilirsiniz.

20 Nisan 2012 Cuma

19. WITH TIES Kullanımı

  • WITH TIES yantümcesi, ORDER BY ile sıralanan sonuç kümesinde son kayıt ile aynı değerde olan kayıtların da listelenmesini sağlar. 
  • Bu durumda sonuç kümeniz belirtiğiniz n sayısından daha fazla olabilir.
  •  WITH TIES yantümcesini sadece ORDER BY yantümcesi ile kullanabilirsiniz.
(İki sorgumuzu dikkatlice inceleyelim ve sonuçlarına bakalım. Resimde daha ayrıntılı görebilirsiniz.) 

Örnek: Normal TOP n ile çalıştırdığımız sorgularımızı eğer WITH TIES ile çalıştırırsak n den farklı sonuç listesi görebiliriz. Burda önemli nokta sıraladığımız yani ORDER BY ile istediğimiz quantity(adet) kısmıdır. Bu durumun anlamı ilk 5 değeri listeledikten sonra en son satıra ait quantity değeri daha varsa onlarıda getirmesidir. İlk sorguda 5 sonuçtan sonuncusunda quantity değerinin 120 olduğunu görmekteyiz. WITH TIES kullanılan sorguda quantity değeri 120 olan bütün değerlerin getirilmesini sağladık.  

Sorgu: SELECT TOP 5 WITH TIES orderid, productid, quantity
                                       FROM [order details] ORDER BY quantity DESC


Ders 20'ye Geçebilirsiniz.

 

8 Nisan 2012 Pazar

13. SQL ORDER BY


  • ORDER BY yantümcesi satırları, belirtilen sütun(lar)a göre sıralamak için kullanılır.
  • ORDER BY ile hangi sütuna göre sıralayacağımızı ve sıralamanın artan veya azalan şekilde yapılacağını belirleriz. 
  • Sıralama yönü belirtilmez ise SQL veriyi artan şekilde sıralar.
  • Sıralama yapılacak alanlar SELECT ifadesinde yer almak zorunda değildir.
Söz dizimi:    
            SELECT <sütun ad(lar)ı> FROM <tablo adı>
            ORDER BY <sütun adı><sıralama yönü>,<sütun adı><sıralama yönü>

(Bu örneğimizde CategoryID alanına göre artan ,bu CategoryID nin kendi içinde aynı değerler arasındada Unitprice değerini azalan olarak sıralandığını göreceğiz.) 

Sorgu: SELECT ProductID, ProductName,
CategoryID, UnitPrice
FROM Products
ORDER BY CategoryID ASC, UnitPrice DESC
 



Ders-14 'e geçebilirsiniz.

25 Mart 2012 Pazar

11. NULL Değerler

  • Veri girişi esnasında, alana herhangi bir değer yazılmazsa ve alan için herhangi bir varsayılan (default) değer atanmamışsa alanda boş (null) değeri saklanır.  
  • Null değeri boşluk (‘ ‘) veya sıfır (0) değerinden farklıdır. 
  • Belirli bir alanına hiçbir değer girilmemiş kayıtları listelemek için IS NULL arama kriteri kullanılır. 
  • Bir tablodaki hangi alanların varsayılan değerleri olacağına veya alanın NULL değere izin verip vermediğine, tablo tasarımı sırasında karar verilir. 
  • Eğer boş olmayan satırları listelemek gerektiğinde IS NOT NULL arama kriterini kullanılır. 
(Örneğimizde fax numaraları girilmemiş ve default değer atanmamış firmaları sorgulayalım.)

Sorgu:  SELECT CompanyName,City,Fax FROM Suppliers WHERE Fax IS NULL





(Fax numaraları girilmiş firmaları sorgulayalım.)

Sorgu: SELECT CompanyName,City,Fax FROM Suppliers WHERE Fax IS NOT NULL




Ders-12' ye geçebilirsiniz.

17 Mart 2012 Cumartesi

10. IN Kullanımı


  • IN sözcüğünü bir listedeki elemanlardan herhangi biriyle eşleşen satırları görüntülemek için kullanırız. 
  • NOT IN arama kriterini ise listede olmayan değerleri aramak için kullanırız. 
  • NOT koşul bildirimi diğer arama koşullarına göre biraz daha yavaş çalışır. 
  • Performans açısından çok sık kullanılması tavsiye edilmez. 
  • IN ile elde ettiğimiz sonuçları OR kullanarakta elde edebiliriz.
Söz dizimi:     SELECT <sütun adı> FROM <tablo adı>
                        WHERE <sütun adı> IN('değer1','değer2',.....)
(Bütün Müşteriler içinde 'VINET' ve 'FOLKO' isimli müşterilerin tekliflerini listeleyelim;)
Sorgu: SELECT * FROM Orders WHERE CustomerID IN ('VINET','FOLKO')
  

Northwind veritabanımız dışında bir örnek vermek gerekirse daha açıklayıcı olması açısından;
Sorgu: SELECT * FROM Ogrenci WHERE Bolum IN ('Bilgisayar','Elektronik','Elektrik') 
(Belirli 'Bolum' lerde okuyan öğrenci bilgilerine ulaşabiliriz.) 

Ders-11' e Geçebilirsiniz.

9. BETWEEN ...AND... Kullanımı

  • BETWEEN ... AND..... operatörü 2 değer ile belirtilen aralığı sınar. Bu değerler sayı, metin veya tarih olabilir. Aralık kriteri için 2 değerde dahildir.
Söz dizimi:     SELECT <sütun adı> FROM <tablo adı>
                        WHERE <sütun adı> BETWEEN <değer 1> AND <değer 2>

(1996-07-16 tarihinde sipariş verenler ve siparişin gönderildiği yeri döndüren örneğimiz;)
Sorgu: SELECT CustomerID,ShipCity FROM ORDERS WHERE ShippedDate='1996-07-16'


(Yeni öğrendiğimiz BETWEEN ile daha ayrıntılı sorgumuzu yapabiliriz. Örneğin gönderim tarihini hatırlayamadığımızı düşünürsek BETWEEN....AND.... kullanmak en mantıklısı olucak.)

Sorgu: SELECT CustomerID,ShipCity,ShippedDate FROM Orders WHERE ShippedDate BETWEEN   '1996-07-01' AND '1996-08-01'

Not: Dikkat etmeniz gereken aralık değerlerinin başlangıç ve bitiş tarihlerini de kapsadığıdır. Bu aynen sayı aralıklı sorgularda da geçerli.

Ders-10'a geçebilirsiniz.


10 Mart 2012 Cumartesi

7. LIKE ifadesi ve JOKER Karakterlerin Kullanımı

  • LIKE ifadesi sütundaki değerlerin, joker karakterler kullanılarak oluşturduğumuz bir arama koşulu ile karşılaştırılmasını sağlar. 
  • Sadece LIKE ile kullanılabilen joker karakterler aslında bir veya daha fazla karakter yerine kullanılır. 
  • Belirli aralıklardaki belli harflerle başlayan veya biten değerler için joker karakterler kullanılır.

Joker Karakterler Açıklama
% Birden fazla harf ya da rakamın yerini tutar.
_ Bir tek harf veya rakamın yerini tutar.
[HARF] Herhangi bir harf yerine gelebilecek harfleri belirtir.
[^HARF] Herhangi bir harf yerine gelemeyecek harfleri belirtir.
[A-Z] A ile Z arasındaki harfleri belirtir.

  • Örneğin northwind veritabanımızda Customers tablosundaki müşterilerden ismi 'D' ile başlayanları listeleyelim.

Sorgu: SELECT * FROM Customers WHERE ContactName LIKE 'D%'



Mesela bazen arayacağınız tabloda ismi hatırladınız soyadı hatırlayamadınız bu durumda LIKE sorgusunu aşağıdaki gibi kullanmak size avantaj sağlayacaktır.
İçinde Roel geçen bütün ContactName'leri görerek aradığımız veriye ulaşabiliriz.

Sorgu: SELECT * FROM Customers WHERE ContactName LIKE '%Roel%'



Örnek arama koşulları;

LIKE ‘REST%’          İlk 4 harfi REST olan tüm kayıtlar
LIKE ‘Br%’               İlk iki harfi Br olan tüm kayıtlar
LIKE ‘%een’              Son üç harfi een olan tüm kayıtlar
LIKE ‘%en%’            İçerisinde en ifadesi geçen tüm kayıtlar
LIKE ‘_en’                Son iki harfi en olan üç harften oluşan tüm kayıtlar
LIKE ‘[CK]%’          C veya K harfleriyle başlayan tüm kayıtlar
LIKE ‘[S-V]ing'         ing ile biten ve ilk harfi S ile V harfleri arasında olan
                                  dört harfli herhangi kelime
LIKE ‘M[^m]%’         M ile başlayan ikinci harfi m olmayan tüm kayıtlar

Ders-8 'e geçebilirsiniz.

6. SQL'de Karşılaştırma Operatörlerin Kullanımı

  • SQL kriterlerle sorgular yapmamıza izin verir. 
  • Her programlama dilinden olduğu gibi SQL'de de istediğimiz kriterler ölçüsünde sorgular yaparak istediğimiz verilere ulaşabiliriz.
  • Karşılaştırma operatörlerinde karşılaştırdığımız veri tiplerine dikkat etmemiz gerekmektedir.
  • Sayısal veriyi karakter tipinde bir veri ile karşılaştıramayız.

Operatörler Açıklama
= Eşittir
<>,!= Eşit Değildir,Farklıdır
> Büyüktür
< Küçüktür
>= Büyük veya Eşit
<= Küçük veya Eşit
BETWEEN Arasında
LIKE Metin Arama

  • Operatörleri WHERE ifadesi ile birlikte sınanmasını istediğiniz koşulları oluştururken kullanıyoruz.
Elimizde böyle karışık ve çok verili bir tablo olduğunu düşünelim. Tabi ki bu tabloya aslında yeni başlayanlar için büyük diyebiliriz.:) 


1- Şimdi bu tabloda belli kısıtlarımız olsun. Örneğin İspanyada(Country) yaşayanların iletişim bilgilerini(ContactName),şehirlerini(City) ve adreslerine(Address ) ihtiyacımız olmuş olsun.

Sorgu: SELECT ContactName,City,Country,Address FROM Customers WHERE Country='Spain'


2- Tam Ters sorgu olarak İspanya haricinde oturanların bilgilerine ulaşmak istediğimizde; 

Sorgu: SELECT ContactName,City,Country,Address FROM Customers WHERE Country != 'Spain' 



3-  UnitPrice değeri 10 dan büyük değerler içinse;

Sorgu: SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice>10




4- UnitPrice değeri 20 den küçük değerler içinse;


Sorgu: SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice<20

 



 5- UnitPrice değeri 10 ve 10 den büyük değerler için;


Sorgu: SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice>=10



6- Products tablomuzda birim fiyat üzerinden sorgu yapacağımızda örneğin UnitPrice değeri 20 ve 20 den düşük değerler için;

Sorgu: SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice<=20






 Not: BETWEEN ve LIKE ifadelerinin SQL de kullanımları hakkında ayrıntılı bilgiyi bir sonraki derslerde bulabilirsiniz.

Ders-7'ye geçebilirsiniz.