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

17 Kasım 2012 Cumartesi

54. CASE Yapısının Kullanımı

  • Bu yapı SQL'de dallanma olduğu durumlarda bir şartın sağlayabileceği farklı durumları bulmak için kullanılır.
SÖZ DİZİMİ:

CASE koşula girecek değer
     WHEN değer THEN işlem
     WHEN değer THEN işlem
 ELSE işlem
END

ÖRNEK:

 SELECT Name AS İsim,Weight AS Ağırlık,'Durum'=
CASE
    WHEN Weight BETWEEN 1500 AND 2500 THEN 'Büyük'
    WHEN Weight BETWEEN 450 AND 1500 THEN 'Orta'
    WHEN Weight BETWEEN 0 AND 450 THEN 'Küçük'
END
FROM Birds



Not: Birds isimli tablomuza 4 tane yeni Instance ekledik. Bunlara kafamıza göre ağırlık belirleyip sadece case yapısını nasıl kullanabiliriz onu gördük.

Ders 55'e geçebilirsiniz.

17 Haziran 2012 Pazar

40.SUBQUERİES- EXISTS ve NOT EXISTS Kullanımı

  • Bazı durumlarda sorgu sonucu dönen listeyle ilgili değilde herhangi bir değer dönüp dönmediyle ilgileniriz. 
  • İşte böyle durumlarda EXISTS ve NOT EXISTS kullanırız. 
  • EXISTS ve NOT EXISTS kullanımı TRUE veya FALSE değerleri döndürür.
Örnek: Birinci sorguda ‘3/05/1997’ ve '4/05/1997' tarihleri arasında sipariş almış olan çalışanlar EXIST işlevi yardımıyla tespit edilip, bilgileri listelenmiştir. Aynı sonuca tabloları JOIN ile birleştirerek te ulaşabiliriz. İkinci sorgudaki DISTINCT ifadesi her çalışanın tekbir kez görüntülenmesini sağlar.

Sorgu-1:
SELECT EmployeeId,LastName,FirstName
FROM Employees AS e
WHERE EXISTS
(SELECT * FROM Orders AS o
     WHERE e.EmployeeId=o.EmployeeId
    AND o.OrderDate BETWEEN '3/5/1997' AND '4/5/1997') 


Sorgu-1:
SELECT DISTINCT FirstName,LastName, e.Employeeid
FROM
Orders AS o
INNE
R JOIN Employees AS e
ON
o.Employeeid =e.Employeeid
WHERE
o.OrderDate BETWEEN '3/5/1997' AND '4/5/1997'


Ders 41' e geçebilirsiniz.

20 Mayıs 2012 Pazar

31. İkiden Fazla Tablonun Birleştirilmesi

  • Büyük sorguların yazıldığı durumlarda ikiden fazla tablonun belirli kısıtlamalarla birleştirilmesi gerekebilir. 
  • JOIN işlemiyle birleştirilen tablolar bir başka tabloya aradaki ortak sütunlar üzerinden bağlanabilir.
Örnek: Aşağıdaki örnekte Sipariş Detayları(Order Details) tablosunu ara tablo şeklinde kullanarak, Siparişler (Orders) ve Ürünler(Products) tablosundan gerekli bilgileri görüntülenmiştir. Bir sipariş birden fazla ürünü içerebilir ve bir ürün birden fazla siparişte yer alabilir. Sonuç kümemizde Sipariş Detayları (Order Details) tablosundan hiçbir alan görüntülemesekte sorguda kullanmalıyız.

Sorgu:
SELECT OrderDate,ProductName FROM Orders AS O
INNER JOIN [Order Details] AS OD ON O.Orderid=OD.Orderid
INNER JOIN Products AS P ON OD.Productid=P.Productid
WHERE OrderDate BETWEEN '7/8/96' AND '7/9/96'
ORDER BY OrderDate

Ders 32'ye geçebilirsiniz.

13 Mayıs 2012 Pazar

27. INNER JOIN Kullanımı

  • SQL de varsayılan (default) olarak kullanılan tablolaları bağlama işlemidir. 
  • Bağlanan tablolarda sadece ilişkili kayıtlar listelenir.
Örnek: Sorgumuzda hangi firmadan hangi ürünü aldığımızı bulmak istiyoruz. Bunun için iki farklı tabloyu birleştirip istediklerimiz SELECT ediyoruz. SELECT * FROM... yaparak da listenen tüm verileri görebilir, istediklerimizi alabiliriz. Diğer bir konuda AS kullanma sebebim daha büyük sorgularla uğraştığımızda bilmeniz gereken bir spde (Stored Procedure) bir tabloya 2 veya daha fazla sorgu cekmeniz gerekebilir. Bunun için ayrı ayrı nesne gibi düşünüp (p,s) gibi üzerinde işlemler yapmak size daha anlaşılabilirlik ve kolaylık sağlayacaktır.

Sorgu:
SELECT ProductName,CompanyName
FROM
Products AS p
INNER JOIN
Suppliers  AS s ON s.Supplierid=p.Supplierid

Ders 28'e geçebilirsiniz.





8 Nisan 2012 Pazar

14. SQL de Matematiksel ve Metinsel işlemler

  • Tablolardaki alanları kullanarak daha etkili ve kesin sonuça dönük sorgular yapmak için SQL deki matematiksel ve metinsel ifadeleri kullanabiliriz.
  • SQL matematiksel işlemlerin sonucunu otomatik olarak üretmeyi sağlayan fonksiyonlara sahiptir.

(Örneğimizde Birim fiyat (UnitPrice) alanı Miktar(Quantity) alanı ile çarpılarak toplam fiyat hesaplanmış ve “TotalCost” adı ile yeni bir alan olarak görüntülenmiştir.)

Sorgu: SELECT OrderID, ProductID,(UnitPrice * Quantity) AS TotalCost
            FROM [Order Details]
           WHERE (UnitPrice * Quantity) > 10000


Ders 15 'e geçebilirsiniz.

3 Nisan 2012 Salı

12. SQL SELECT DISTINCT


  • DISTINCT kelimesi bir sütundaki benzersiz kayıtları listeler. 
  • Bir sütunda belirli bir kelime iki veya daha fazla sayıda tekrarlanıyor olabilir. 
  • DISTINCT anahtar kelimesi ile her tekrarlanan kelime sadece bir kez listelenir. 

Söz dizimi: SELECT DISTINCT <sütun adı> FROM <tablo adı> [WHERE <koşul>]

(Hangi ülkelerdeki üreticilerle çalıştığımızı görmek isteyelim. Bu durumda tek bir ülkeden birden fazla firma ile çalışıyor olabiliriz.)
Sorgu: SELECT DISTINCT Country FROM Suppliers


Ders 13' 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.


13 Mart 2012 Salı

8. Mantıksal Operatörler

  • AND , OR , NOT mantıksal operatörlerinin yardımıyla birden fazla koşulun gerçekleşimini sağlayarak karmaşık veya birleşik koşullu listelemeler yapabiliriz. 
  • BETWEEN ifadesi de AND operatörü ile aynı işlemleri gerçekleştirebilmektedir. 
  • AND operatörünün anlamı, birleştirilen koşulların tümüne uyan kayıtları bize listeler. 
  • OR operatörünün anlamı, tanımladığımız koşullardan en az bir tanesine uyan kayıtları listeler. 
  • NOT operatörü ise kendisinden sonra gelen koşulu sağlamayan kayıtları listeler. 
  • Parantez kullanımı ikiden fazla koşul olması durumunda koşulların öncelik sırasını belirler.
  • Parantez kullanılmaması durumunda SQL önce NOT, sonra AND ve en son da OR mantıksal operatörünü işler.

Söz Dizimi:      SELECT <sütun adı> FROM <tablo adı>
                        WHERE <koşul> AND <koşul>[AND <koşul>...]

(Öreğimizde Japonya'daki veya Londra'daki üreticileri listelemek istediğimizde;)
Sorgu: SELECT CompanyName,ContactName,City,Country FROM Suppliers WHERE 
                    Country='Japan'  OR  City='London'




(3 veya 4. kategorideki birim fiyatı 10$'dan yüksek ürünleri listelemek istersek; )
Sorgu: SELECT * FROM Products WHERE (CategoryID=3 OR CategoryID=4) AND UnitPrice>10


Ders-9 'a  geçebilirsiniz.