WHERE Deyiminin Kullanımı
Tablodaki veriler arasında belirli kritere uygun sorgu yapmak için WHERE deyimi kullanılır. Arama kriteri veya filteleme ifadesi olarak da isimlendirilebilir.
WHERE deyimi, FROM ifadesinin hemen sağında kullanılır.
WHERE Söz dizimi:
SELECT FROM
WHERE
Ürünler tablosudan ürün fiyatı 2.5 olanları listelemek isteyelim.
SELECT ProductName, UnitPrice
FROM Products
WHERE UnitPrice = 2.5
Bu sorguda, ürünler tablosundan sadece ürün fiyatı 2.5 olan kayıtlar listelenecektir.
WHERE Deyiminde Kullanılacak Operatörler
WHERE deyimi ile kombine edilebilecek çeşitli operatörler vardır. Bu operatörler tablo 4.1'de listelenmiştir.
Operatör Açıklama
= Eşitlik
<> Eşit değil
!= Eşit değil
< Küçüktür
> Büyüktür
<= Küçük eşittir
>= Büyük eşittir
!< Küçük değildir
!> Büyük değildir
BETWEEN İki değer arasında
IS NULL NULL Değer
Tablo 4.1: Where Deyimi Operatörleri
Bu operatörlerden bazıları birbirleriyle aynı anlama gelmektedir. Örneğin <> ile !=, !< ile >=, ve !> ile <= aynı etkileri oluşturur. Fakat bunların hepsi bazı veri tabanı yönetim sistemleri tarafından desteklenmez. Örneğin !=, !< ve !> operatörleri, Ms Access tarafından desteklenmez.
Tek Bir Değere Göre Arama
Önceki örnekte 2.5 liraya eşitliğe göre arama yaptık. Şimdi ise belirli bir fiyattan daha küçük fiyata sahip olanları listeleyelim.
Ürünler tablosundan fiyatı 5 liradan küçük olanları listeleyelim.
SELECT ProductName, UnitPrice
FROM Products
WHERE UnitPrice < 5
Ürünler tablosundan fiyatı 15 liradan büyük ve eşit olanları listeleyelim.
SELECT ProductName, UnitPrice
FROM Products
WHERE UnitPrice >= 15;
4.2.2 Eşitsizlik Durumları
Şimdi ise eşitsizlik durumlarını inceleyelim.
Satıcı numarası 4 olan hariç tüm satıclardan alınan ürünleri listelemek isteyelim.
SELECT SupplierID, ProductName
FROM Products
WHERE (SupplierID <> 4);
Ürün adı Chang dışındaki tüm ürünleri listeleyelim.
SELECT ProductName
FROM Products
WHERE ProductName <> 'Chang'
Örnekten de gördüğünüz gibi, metinsel ifadeler ile ilgili sorgu yaparken ayıraç olarak tekli tırnak kullanılır.
Belirli Bir Değer Aralığındaki Verilerin Araştırılması
Belirli bir değer aralığındaki verileri araştırmak için BETWEEN operatörü kullanılır. Bu operatörün kullanımı WHERE deyiminden biraz daha farklıdır. Arama yapılacak aralığın başlangıcı BETWEEN anahtar sözcüğünden sonra belirtilmeli ve AND anahtar sözcüğünden sonra ise aralığın bitiş noktası belirtilmelidir.
Fiyatı 10 ve 20 lira arasında değişen ürünleri listeleyelim.
SELECT ProductName , UnitPrice
FROM Products
WHERE UnitPrice BETWEEN 10 and 20
BETWEEN operatörü sayesinde istenilen her aralıkta bulunan verileri ulaşabilirsiniz. Önemli olan başlangıç ve bitiş aralığını belirtmektir. Örnekte fiyat araması için nümerik değerler kullanıldı. Ayrıca metin ifadeleri için de aralık belirtilebilir. Bu sefer metinin alfabetik duruma göre arama yapılacaktır.
Ürün adı "Chang" ile "Longlife Tofu" arasında yer alan ürünleri listeleyelim.
SELECT ProductName, UnitPrice
FROM Products
WHERE ProductName BETWEEN 'Chang' AND 'Longlife Tofu';
4.2.4 Değer Girilmemiş Kayıtların Bulunması
Bir tablo oluşturulduğunda, bazı alanlara değer girilmemesine izin verilebilir. Örneğin bir adres bilgisinde posta kodu alanı opsiyonel olarak bırakılabilir. Bu şekilde hiç bir değer girilmemiş alanlarda saklanan değere NULL değer denir.
Bilgi: NULL ne 0 demektir, ne de boş bir metin bilgisi.
NULL bilgiya ulaşmak için WHERE deyimi ile IS NULL anahtar sözcüğü birlikte kullanılır.
Tedarikçiler (Suppliers) tablosundan fax bilgisi girilmemiş tedarikçilerin listesini alalım.
SELECT SupplierID, CompanyName
FROM Suppliers
WHERE Fax IS NULL;
WHERE Fax IS NULL kodu sayesinde fax numarası girilmemiş tedarikçiler listelenir.