![]()
Şimdi de Kod yazarken sürekli etkileşim halde olduğumuz ve aynı zamanda Kullandığımız Framework te yazdığımız sorgulara kaşılık gelen ve SQL de sıklıkla kullandığımız AND , OR , LIKE ,IN , ANY , ALL , EXISTS, NOT , IS NULL, IS NOT NULL, BETWEEN, UNION, INTERSECT, EXCEPT gibi bazı operatörlere bakacağız.
AND & OR => Yazdığımız sorguda her iki koşul da doğruysa değerini döndüren AND (&&) ve en az bir koşul doğruysa doğru değerini döndüren OR (||) operatörüdür.
|
1 2 3 4 5 6 7 8 9 10 11 |
SELECT ProductID, ProductName,UnitPrice FROM Products WHERE UnitPrice > 30.00 AND UnitsInStock < 10; yada SELECT ProductID, ProductName,UnitPrice FROM Products WHERE UnitPrice > 30.00 OR UnitsInStock < 10; |
LIKE => where koşulu ile beraber kullanılır. where Adi like %’a’% adında a harfi geçenleri bulur , where Adi like ‘a%’ a ile başlayanları bulur , where Adi like ‘%a’ a ile bitenleri bulur.
|
1 2 3 4 5 6 7 |
SELECT * FROM Products WHERE ProductName LIKE ‘%a%’ —içersinde a harfi geçenleri bul SELECT * FROM Products WHERE ProductName LIKE ‘a%’ —a harfi ile başlayanları bul SELECT * FROM Products WHERE ProductName LIKE ‘%a’ —a harfi ile bitenleri bul |
IN & NOT IN => Değerinin bir liste içerisinden herhangi bir değere eşit olması istenen durumda IN . Listede herhangi bir değere eşit olması istenilmeyen durumda da NOT IN kullanılır.
|
1 2 3 4 5 |
SELECT * FROM Products WHERE UnitsInStock IN(0,15,22) SELECT * FROM Products WHERE ProductName NOT IN(‘Chai’,‘Ikura’) |
ANY & ALL => Bu komutlar where veya having ile kullanılır. ANY komutu, alt sorgu değerinden herhangi biri koşulu karşılıyorsa true döndürür.
ALL operatörü ise , tüm alt sorgu değerleri koşulu karşılıyorsa true döndürür.
|
1 2 3 4 5 |
SELECT * FROM Products WHERE ProductID = ANY (SELECT ProductID FROM Products WHERE UnitPrice >= 97.00); |

|
1 2 3 4 5 |
SELECT CustomerID,ShipName,ShipCity FROM Orders WHERE CustomerID = ALL (SELECT CustomerID FROM Customers WHERE CustomerID = ‘ALFKI’ AND Country = ‘Germany’) |

EXISTS => Bu operatör de alt sorgudan çağrılan değerlerin içerisinde bir değerin olması veya olmaması durumunda işlem yapılmasını sağlar. EXISTS ifadesi kullanıldığında, alt sorguda istenilen şartların sağlandığı durumlarda ilgili kaydı listeler. NOT EXIST ise tam tersini yapar
|
1 2 3 4 5 6 7 8 9 10 11 |
SELECT OrderID,CustomerID,ShipCity FROM Orders WHERE EXISTS ( SELECT CustomerID FROM Customers WHERE Customers.CustomerID = Orders.CustomerID AND City In(‘Buenos Aires’) ); |

NOT => Buda and ve or gibi WHERE içinde şart olarak kullanılır. Belirtilen şartları karşılamayanları gösterir.
|
1 2 3 |
SELECT * FROM Customers where NOT Country = ‘Germany’ |
IS NULL & IS NOT NULL => is null boş olan değerleri de getiri , is not null boş olmayan değerleri getirir.
|
1 2 3 |
SELECT CustomerID,CompanyName,Region FROM Customers where Region Is Null |

|
1 2 3 |
SELECT CustomerID,CompanyName,Region FROM Customers where Region Is Not Null |

BETWEEN => Belirlenen aralıktaki değerleri getiri. Bu değerler sayı, metin, tarih olabilir.
|
1 2 3 |
SELECT OrderID,CustomerID,RequiredDate,ShippedDate FROM Orders WHERE RequiredDate BETWEEN ‘1996-07-11’ AND ‘1996-08-06’ |

UNION => İki veya daha fazla tabloları sorgu sonuçlarını birleştirmek için kullanılır. Dataları Tekrarsız getirir. UNION ALL ise tekrarlı getirir.
|
1 2 3 4 5 6 7 |
SELECT CustomerID FROM Orders WHERE ShippedDate >= ‘1996-07-16’ UNION SELECT CustomerID FROM Customers WHERE Region IS NULL |
INTERSECT => Tablodaki Ortak alanları getirir Yani kesişim kümesini. Burada Alan adı ve tipi aynı olması gerekiyor.

|
1 2 3 4 5 6 7 8 9 |
SELECT o.CustomerID FROM Orders o INTERSECT SELECT c.CustomerID FROM [Customers] c |

Bu netten başka örnek
|
1 2 3 4 5 6 7 8 9 10 11 |
SELECT NAME, AGE, HOBBY FROM STUDENTS_HOBBY WHERE AGE BETWEEN 25 AND 30 INTERSECT SELECT NAME, AGE, HOBBY FROM STUDENTS WHERE AGE BETWEEN 20 AND 30; |

EXCEPT => Genelde Tablolardaki verielrin karşılaştırlması için kullanılır. Veri türlerinin tipleri aynı olması gerekiyor

|
1 2 3 4 5 6 7 8 9 |
SELECT o.CustomerID FROM Orders o EXCEPT SELECT c.CustomerID FROM [Customers] c |

Sağlıcakla kalın….








Bir yanıt yazın