ASP.NET
Network Akademi

Met Hostimg

“Bilgi paylaşıldıkça artar” sloganı ile .NET Platformuna ilişkin birikimlerin paylaşıldığı ASP.NET.TR Topluluğunda sizde “YAZAR” olmak için ; info@asp.net.tr e-mail adresine kendinizi anlatan bir e-mail göndererek başvuruda bulunabilirsiniz.

A’dan Z’ye Temel SLECT İfadeleri 2

İsmail ADAR
SQL
13.06.2010 14:19:07
Hit : 8328

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




BU İÇERİĞE YORUMDA BULUNUN


Bu MAKALE'ye yorum yapabilmek için Üye olmalısınız ...!


BU İÇERİĞE YAPILAN YORUMLAR