WHERE, SQL sorgularında belirli bir koşulu sağlayan verileri seçmek için kullanılır. Bir tablodan yalnızca belirli şartları karşılayan satırları çekmek istediğimizde WHERE ifadesini kullanırız.
- Veri sorgularında belirli koşulları filtrelemek,
- Güncelleme veya silme işlemlerinde belirli satırları seçmek için kullanılır.
WHERE Koşulu Kullanımı
Temel syntax yapısı:
1 2 3 | SELECT sutun1, sutun2, ... FROM tablo_adi WHERE koşul; |
Açıklamalar:
- sutun1, sutun2, … → Getirilmek istenen sütunları belirtir.
- tablo_adi → Verilerin bulunduğu tabloyu ifade eder.
- koşul → Seçilen verilere uygulanacak şarttır.
WHERE Operatörleri
Operatör | Açıklama |
---|---|
= | Eşittir |
!= veya <> | Eşit değildir |
> | Büyüktür |
< | Küçüktür |
>= | Büyük eşittir |
<= | Küçük eşittir |
BETWEEN ... AND ... | Belirli bir aralıkta olup olmadığını kontrol eder |
IN (...) | Belirtilen değerlerden birine eşit olup olmadığını kontrol eder |
LIKE | Belirli bir desene uyup uymadığını kontrol eder |
IS NULL / IS NOT NULL | NULL değer olup olmadığını kontrol eder |
WHERE Kullanımı ile İlgili Örnekler
1. Belirli Bir Şarta Uygun Verileri Seçme
Örneğin, calisanlar tablosundaki Bilgi İşlem departmanında çalışanları listeleyelim:
1 2 3 | SELECT isim, soyisim, departman FROM calisanlar WHERE departman = 'Bilgi İşlem'; |
isim | soyisim | departman |
Ahmet | Yılmaz | Bilgi İşlem |
Elif | Kaya | Bilgi İşlem |
2. Sayısal Değerlerle Filtreleme
Maaşı 50000 TL ve üzerinde olan çalışanları listeleyelim:
1 2 3 | SELECT isim, soyisim, maas FROM calisanlar WHERE maas >= 50000; |
isim | soyisim | maas |
Ahmet | Yılmaz | 60000 |
Elif | Kaya | 55000 |
3. WHERE ile Birden Fazla Koşul Kullanma
AND ve OR operatörlerini kullanarak birden fazla şart belirtebiliriz.
AND Kullanımı
Maaşı 50000 TL’nin üzerinde ve Bilgi İşlem departmanında çalışanları getirelim:
1 2 3 | SELECT isim, soyisim, departman, maas FROM calisanlar WHERE departman = 'Bilgi İşlem' AND maas > 50000; |
OR Kullanımı
Maaşı 60000 TL’den fazla veya Muhasebe departmanında olanları getirelim:
1 2 3 | SELECT isim, soyisim, departman, maas FROM calisanlar WHERE maas > 60000 OR departman = 'Muhasebe'; |
4. WHERE ve LIKE Kullanımı
Belirli bir desene uyan verileri çekmek için LIKE kullanılır.
Örneğin, ismi “A” harfi ile başlayan çalışanları listeleyelim:
1 2 3 | SELECT isim, soyisim FROM calisanlar WHERE isim LIKE 'A%'; |
isim | soyisim |
Ahmet | Yılmaz |
Ali | Demir |
LIKE Joker Karakterler:
%
(Yüzde İşareti)%
joker karakteri, sıfır veya daha fazla karakteri temsil eder.- Arama yaparken belirli bir desenin başında, sonunda veya herhangi bir yerinde olabilecek karakterleri ifade etmek için kullanılır.
'a%'
: “a” ile başlayan tüm metinleri bulur (örneğin, “Ahmet”, “Ali”).'%a'
: “a” ile biten tüm metinleri bulur (örneğin, “Hava“, “Elma“).'%a%'
: İçinde “a” geçen tüm metinleri bulur (örneğin, “Kalem”, “Duvar”).
_
(Alt Çizgi)_
joker karakteri, tam olarak bir karakteri temsil eder.- Belirli bir alanda tek bir karakterin ne olduğunu bilmediğiniz durumlarda kullanılır.
'a_'
: “a” ile başlayan ve ardından tam olarak bir karakter daha olan metinleri bulur (örneğin, “at”, “ak”).'_a%'
: İkinci karakteri “a” olan tüm metinleri bulur (örneğin, “kalem”, “masa”).
[]
(Köşeli Parantez)[]
içinde belirtilen karakterlerden herhangi birini temsil eder.'[abc]%'
: “a“, “b” veya “c” ile başlayan tüm metinleri bulur (örneğin, “araba”, “bebek”, “cam”).'%[efg]'
: “e“, “f” veya “g” ile biten tüm metinleri bulur (örneğin, “kahve“, “hastane“, “sarraf“).
[^]
(Köşeli Parantez ve Ünlem)[^]
içinde belirtilen karakterler dışında herhangi bir karakteri temsil eder.'[^abc]%'
: “a“, “b” veya “c” ile başlamayan tüm metinleri bulur (örneğin, “dolap”, “elma”, “kitap”).'%[^xyz]'
: “x“, “y” veya “z” ile bitmeyen tüm metinleri bulur (örneğin, “kalem“, “masa“, “defter“).
5. WHERE ve IN Kullanımı
IN operatörü, belirli bir liste içindeki değerleri kontrol etmek için kullanılır.
Örneğin, sadece “Bilgi İşlem” ve “Muhasebe” departmanlarını seçelim:
1 2 3 | SELECT isim, soyisim, departman FROM calisanlar WHERE departman IN ('Bilgi İşlem', 'Muhasebe'); |
6. WHERE ile NULL Değerleri Filtreleme
Bazı sütunlarda boş (NULL) değerler olabilir. Bu değerleri filtrelemek için IS NULL veya IS NOT NULL kullanılır.
Örneğin, telefon numarası kayıtlı olmayan (NULL olan) çalışanları listeleyelim:
1 2 3 | SELECT isim, soyisim FROM calisanlar WHERE telefon IS NULL; |
Eğer sadece telefon numarası kayıtlı olanları görmek istiyorsak:
1 2 3 | SELECT isim, soyisim FROM calisanlar WHERE telefon IS NOT NULL; |
Makalen aynı ortalarım gibi kaymak gibi, futbolcu olmasaydım senin gibi olurdum. Aynen devam kardeşim.