1. WHERE KOMUTU
Hatırlayacağınız üzere sql’de select komutuyla tablodan veri çekiyorduk. İstersek tüm tabloyu istersek de belirli kolonları ekrana getirebiliyorduk. Bu sorguları daha spesifik hale getirebiliriz örneğin sadece belli bir satırı ekrana getirmek isteyebiliriz veya bir tablonun içindeki belli ortak özelliklere sahip kayıtları ekrana getirmek isteyebiliriz. Yani kayıt sorgulamamızı belli koşullara bağlı yapabiliriz. Hemen bir senaryoyla bunu örneklendirelim.
Örn : Çalışanlar tablomuzdan 7 numaralı çalışanımızın kaydını ekrana getirmek istiyoruz.
select * from Calisanlar where EmployeeID = 7
Örn : 30 yaşından küçük çalışanları ekrana getirmek istiyoruz .
select * from Calisanlar where CalisanYas < 30
Örn :Ismi Ahmet olan çalışanları ekrana getirmek istiyoruz .
select * from Calisanlar where Isım = " Ahmet "
2. WHERE KOMUTUNU BOOLEAN IFADELERLE KULLANMAK
Diğer yazılım dillerinden de aşina olduğunuzu düşündüğüm boolean ifadeleri SQL’de de koşullu sorgular içerisinde kullanabilirsiniz. Bu ifadeler hepinizin bildiği üzere OR , AND ve NOT dır. Örneklere geçmeden önce OR ve AND’ın çalışma mantıgından biraz bahsetmek istiyorum.Sorgularda or veya and kullandığınız zaman bu sorgunun bir sonuç döndürebilmesi için koşul ifadesinin TRUE sonuç dönmesi gerekir yani koşulun sağlanması gerekir ancak bu true sonuç dönmesinin belli koşulları vardır ki siz bunlara matematik dersinin mantık konusundan aşina olmalısınız. Ben yinede bunlardan kısaca bahsetmek istiyorum.
Or ifadesinin doğruluk tablosu And ifadesinin doğruluk tablosu
True or True = True True and True = True
True or False = True True and False = False
False or True = True False and True = False
False or False = False False and False = False
yukarıdaki doğruluk tablolarını hepimiz eğitim hayatımızın bir bölümünde duymuşuzdur. Sql’de de aynı mantık geçerli örneğin elimizde ( yas > 30 or yas >50 ) gibi bir koşul var. Bunun doğrulanabilmesi için
eğer herhangi bir kaydın yaşı ;
30’dan büyükse ama 50’den büyük değilse : True or False = True kayıt ekrana gelir.
30’dan büyükse ve 50’den de büyükse : True or True = True kayıt ekrana gelir
30 yaşından küçük ise : False or False = False kayıt ekrana gelmez
Örn : select * from Kategoriler where KategoriID = 3 or KategoriID = 5 ifadesi bize kategoriIDsi 3 olan kayitlari da 5 olan kayitlari da ekrana getirir. Çünkü koşullardan herhangi birinin doğruluğu koşulu TRUE yapmaya yeterlidir. Ancak
select * from Kategoriler where KategoriID = 3 and KategoriID = 5 ifadesi ekrana hiçbir kayıt döndürmez çünkü tüm koşul yapısının true olabilmesi için iki koşulunda aynı anda sağlanması yani TRUE olması lazımdır. Bir kaydın iki IDsi olamayacağından ekrana kayıt gelmeyecektir.
Örn : KategoriIdsi 1 , 4 ve 5 olan kayıtları ekrana getir.
select * from Kategoriler where KategoriID = 1 or KategoriID = 4 or KategoriID = 7
veya
select * from Kategoriler where KategoriID IN (1,4,7)
3. TABLODAN ARALIK SORGULAMA
select * from Calisanlar where CalisanID > 3 and CategoryID < 7
select * from Calisanlar where CalisanID between 3 and 7 (uçları da dahil eder)
4. TABLODAN TARIH SORGULAMA
select * from Orders where YEAR(OrderDate) = 1998 select * from Orders where MONTH(OrderDate) = 03 select * from Orders where DAY(OrderDate) = 01 select * from Orders where YEAR(OrderDate) = 1998 and MONTH(OrderDate) = 03 and DAY(OrderDate) = 01
*dogum günü bulma*
DAY(BirthDate) = month(getdate()) and MONTH(BirthDate)=MONTH( getdate() ) and Year(BirthDate)=YEAR( getdate() )