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 3

İsmail ADAR
SQL
15.06.2010 20:33:39
Hit : 6798

Merhaba arkadaşlar,

A’dan Z’ye Temel SLECT İfadeleri yazı dizimize devam ediyoruz.Bu makalede geçen kaldığımız yerden devam fakat devam etmeden önce hatırlamak isteyenler diğer makaleye http://www.asp.net.tr/Makale/900-A’dan-Z’ye-Temel-SLECT-Ifadeleri-2.aspx

 

Adresinden ulaşabilirler.

 

IN Operatörü bir kolonun birden fazla değer alabileceği durumlarda kullanılmaktadır. Karşılaştırma operatörü olan ‘OR’ ile aynı işlevi görmektedir. Örneğin

 

USE AdventureWorks

GO

SELECT * FROM Production.Product

        WHERE ProductID in(320,321,322)

 

 

Yukarıdaki kullanımla aşağıdaki kullanım aynı işlevi görmektedir. Fakat örnekteki gibi sıralı bir kullanım varsa burada IN operatörü yerine between kullanmak daha iyi bir performans elde etmemizi sağlayacaktır.

 

USE AdventureWorks

GO

SELECT * FROM Production.Product

        WHERE ProductID=320 or ProductID=321 or ProductID=322

 

 

 

 

 

IS NULL Operatörü where ile kullanıldığında operand olarak aldığı kolonun içeirğinin Null olup olmadığını kontrol eder. Örneğin tablomuzda null değer içeren satırları listelemek için is null ifadesi aşağıdaki gibi kullanabiliriz:

 

USE AdventureWorks

GO

SELECT * FROM Production.Product

        WHERE Color is null

 

Bu sorgu ile Color kolonuna değer girilmemiş kayıtlar bize dönecektir.

 

NOT Operatörü adından da anlaşılacağı üzere koşullarımıza olumsuzluk katan bir ifadedir. Örneğin WHERE ProductID in(320,321)

ile ProductID Sutunun değerlerinin 320 veya 321 eşit olanları sorgularken bu ifadeye ekleyeceğimiz NOT operatorü ProductID değeri 320 ve 321 dışında kalan kayıtları listeleyecektir.

 

USE AdventureWorks

GO

SELECT * FROM Production.Product

        WHERE ProductID Not in(320,321,322)

 

Aynı şekilde Not ifadesinin Is Null operatörü ile kullanıp Null olamayan satırları da listeleyebiliriz.

 

USE AdventureWorks

GO

SELECT * FROM Production.Product

        WHERE Color is Not null

 

Yine aynı kullanım Between operatörü içinde geçerlidir.

 

USE AdventureWorks

GO

SELECT * FROM Production.Product

        WHERE ProductID Not between 320 and 322

 

 

 

 

 

EXIST Operatörü parametre olarak aldığı SubQueryden değer dönüp dönmediği bilgisini bize verir. Örnek olarak

 

USE AdventureWorks;

GO

SELECT a.FirstName, a.LastName

FROM Person.Contact AS a

WHERE EXISTS

(SELECT *

    FROM HumanResources.Employee AS b

    WHERE a.ContactID = b.ContactI

    AND a.LastName = 'Johnson');

 

Aynı ifadeyi IN Operatörü ile şu şekilde yazabiliriz:

 

USE AdventureWorks;

GO

SELECT a.FirstName, a.LastName

FROM Person.Contact AS a

WHERE  a.ContactID in (Select  b.ContactI  FROM HumanResources.Employee AS b where  a.LastName = 'Johnson')

 

 

Exist Operatörü de Not ifadesi ile olumsuzlaştırılabilir.

 

USE AdventureWorks;

GO

SELECT a.FirstName, a.LastName

FROM Person.Contact AS a

WHERE NOT EXISTS

(SELECT *

    FROM HumanResources.Employee AS b

    WHERE a.ContactID = b.ContactI

    AND a.LastName = 'Johnson');

 

 

 

NOT: Exist Operatörünün çok kullanıldığı yerlerden biri de işlem yapılmadan önce bir nesnenin üzerinde var olup olmadığını kontrol etmektir. Örnek olarak

USE AdventureWorks;

GO

if EXISTS(Select * From sys.tables where object_id=object_id('dbo.Urunler'))

Drop table dbo.Urunler

 

Bu makalede temel operatorlere değindik bu yazının devamında order by deyiminden söz ettikten sonra daha performanslı ve anlaşılabilir Select ifadeleri yazmak için dikkat etmemiz gerek noktalara 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