Sadece istediğin satırlar
WHERE, bir koşulu sağlayan satırları süzer. FROM'dan sonra gelir:
SELECT name, price FROM products WHERE price > 1000;
Karşılaştırma operatörleri
| Operatör | Anlamı | Örnek |
|---|---|---|
= | eşit | city = 'Ankara' |
<> veya != | eşit değil | status <> 'cancelled' |
>, < | büyük, küçük | stock < 10 |
>=, <= | büyük eşit, küçük eşit | salary >= 50000 |
Metinler tek tırnakla yazılır
SELECT first_name, last_name, city FROM customers WHERE city = 'İzmir';
- Metin değerleri tek tırnak içinde yazılır:
'İzmir'. Çift tırnak sütun/tablo adı içindir. - SQLite'ta
=büyük/küçük harf duyarlıdır:'izmir'ile'İzmir'eşleşmez.
Tarihler
Bu veritabanında tarihler 'YYYY-AA-GG' biçiminde metin olarak saklanır. Bu ISO formatı sayesinde metin karşılaştırması tarih sırasıyla aynı sonucu verir:
SELECT order_id, order_date FROM orders WHERE order_date >= '2024-12-01';
Derinleş: koşul yazarken dikkat
WHERE her satır için ayrı ayrı doğru/yanlış sorusu sorar. Saat içeren sütunlarda (placed_at, sched_dep) gün filtresi için yarı açık aralık kullan:
SELECT COUNT(*) AS kasim_siparis FROM lk_orders WHERE placed_at >= '2024-11-01' AND placed_at < '2024-12-01';
placed_at = '2024-11-05'saatli kayıtlarla hiç eşleşmez.- Sütuna fonksiyon uygulamak (
WHERE strftime('%Y', placed_at) = '2024') çalışır ama indeks kullanımını engelleyebilir; mümkünse aralık yaz. - Sayı sütununu metinle karşılaştırma (
price > '300') SQL türüne göre farklı sonuç verebilir.