Merhaba arkadaşlar,
A’dan Z’ye Temel SLECT İfadeleri yazı dizimize devam ediyoruz.Bu makalede geçen kaldığımız yerden devam edeceğiz fakat devam etmeden önce hatırlamak isteyenler diğer makaleye http://asp.net.tr/Makale/899-A’dan-Z’ye-Temel-SLECT-Ifadeleri-1.aspx
Adresinden ulaşabilirler.
Önceki makaledende bildiğimiz gibi temel bir Select ifadesinin yazılış biçimi aşağıdaki gibidir:
[ WITH <common_table_expression>]
SELECT <TOP (expression) [PERCENT]><DISTINCT> Kolon_Listesi [ INTO yeni tablo]
[ FROM source ] [ WHERE arama koşulları ]
[ GROUP BY Gruplama kriteri ]
[ HAVING Gruplama koşulu ]
[ ORDER BY Sıralama_koşulu [ ASC | DESC ] ]
DISTINCT ifadesi ile veri kaynağından sorguladığımız verilerin sonuç kümesinde tekrarlanmasını engellenebilir.
SELECT DISTINCT Color FROM Production.Product
NOT: Distinct kullanmak yerine pratikte çoğunlukla bu işlem birazdan değineceğimiz Exist Operatörü ile daha hızlı ve pratik bir şekilde de yapılabilmektedir.
SELECT DISTINCT Color FROM Production.Product
order by ProductID
Distinct ile ilgili olarak diğer bir ifade ise yukarıda gösterildiği gibi DISTINCT ifadesinden sonra kullandığımız kolon adı dışında bir kolon ile sorgumuzu sıralamak istersek şöyle bir hata alırız:
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
[ WHERE arama koşulları ] deyimi çeşitli arama ifadeleri içerir. Bunlar boolean türde operatörler olup önemlilerinden bazıları: LIKE, BETWEEN , EXIST, IS NULL,IS NOT NULL dır. Şimdi aşağıdaki örneği inceleyelim:
SELECT * FROM Production.Product
WHERE Color = 'Silver'
AND (ListPrice > 200 OR ListPrice = 0)

Yukarıdaki cümlede birçok operatör kullanılmış durumdadır. Bu cümledeki AND,OR gibi operatörler bazı şeyleri kontrol etmede bize kolaylık sağlar. Cümleyi açıklayacak olursak Production şemasındaki Product tablosundan color değeri Silver olan ve fiyatı da 0 ile 200 arasında olan ürünleri bize göstermesini sağlar.
Where deyimi ile kullanabileceğimiz operatörlere kısaca göz atacak olursak:
· = Eşittir.
Bu operatörün sağına ve soluna yazılan değerlerin eşit olup olmadığı kontrol edilir.
· >, >=, <, <= --Büyüktür, büyük veya Eşittir, Küçüktür, Küçük veya Eşittir
Bu operatörlerin sağına ve soluna yazışan operandlarıdeğer yönünden karşılaştırmaktadır
· LIKE
Bu operator karakter tabalı işlemlerde arama yapmayı sağlayan esnek bir yapıya sahiptir. Bu operatorun kullandığı operand da aşağıdaki ifadeler kullanılabilir:
% 0 veya daha fazla karakterli ifade
_ tek bir karakter
[] belirtilenler arasından tek bir karakter
[^] belirtilenler arasında olmayan tek bir karakter
Örneğin:
LIKE ‘AD%’ -- AD ile başlayan tüm isimler
LIKE ‘%sin’ -- sin ile biten tüm isimler
LIKE ‘ %in%’ in ifadesini içeren tüm isimler
LIKE ‘_en’ en ile biten tüm 3 karakterli isimler
LIKE ‘[IS]%’ I veya S ile başlayan tüm isimler
LIKE ‘[A-D]nan’ Tüm 4 karakterli ve ilk karakteri A ile D arasında olan ve nan ile biten tüm isimler
LIKE ‘M[^c]%’ M ile başlayan ve ikinci karakteri c olmayan tüm isimler
· != Eşit Değildir
Bu operator ise verilen operandların birlerine eşit olmadığı durumlarında kullanılır. Fakat dikkat edilmesi gerek nokta != operatorü T-SQL’e özgüdür.Yani MySql de Oracle da != operatoru yoktur. Standart SQL de eşit değil operatörü <> şeklinde gösterilmektedir. Sorgularımızda != yerine <> kullanmak yazdığımız kodları standartlaştırmaya yarar.
[Between… AND… ] Operatörü ise operandın verilen değerler arasında olup olmadığını araştırır. Bu operator ile yapabileceğimiz kısıtlama işlemimi büyüktür ve küçük eşittir operatörleriyle de yapabiliriz.
USE AdventureWorks
GO
SELECT * FROM Production.Product
WHERE Color = 'Silver'
AND ListPrice between 0 and 200
Yukarıdaki örnekte 0 ve 200 değerlerinin dâhil olduğu unutulmamalıdır. Ayrıca betweenden sonra küçük değerli operand yazılmalıdır.
USE AdventureWorks
GO
SELECT * FROM Production.Product
WHERE Color = 'Silver'
AND ListPrice between 200 and 0
İfadesi bize herhangi bir sonuç döndürmez.
Select ifadesinde karşılaştırma operatörlerine bir giriş yaptık A'dan Z'ye Temel Select yazı dizisi devamında Select deyimi ile kullanılan diğer ifadelere değineceğiz.
Kolay gelsin