IN: listeden biri
Çok sayıda OR yazmak yerine:
SELECT first_name, city
FROM customers
WHERE city IN ('İzmir', 'Bursa', 'Antalya');
NOT IN listede olmayanları getirir.
BETWEEN: aralık
BETWEEN a AND b, uç değerler dahil a ile b arasını seçer:
SELECT name, price FROM products WHERE price BETWEEN 300 AND 900;
Tarihlerle de çalışır: order_date BETWEEN '2024-01-01' AND '2024-03-31'.
Tarih + saat tuzağıSütunda saat de varsa (
'2024-03-31 14:20:00'), BETWEEN ... AND '2024-03-31' o günün saatli kayıtlarını kaçırır. Güvenli kalıp: tarih >= '2024-01-01' AND tarih < '2024-04-01'.LIKE: desen eşleştirme
| Joker | Anlamı | Örnek |
|---|---|---|
% | sıfır veya daha fazla karakter | 'Akıllı%': Akıllı ile başlayan |
_ | tam olarak bir karakter | '_a%': ikinci harfi a olan |
SELECT name FROM products WHERE name LIKE '%Set%';
SELECT email FROM customers WHERE email LIKE '%@gmail.com';
Büyük/küçük harfSQLite'ta LIKE, ASCII harflerde büyük/küçük harf duyarsızdır. PostgreSQL'de LIKE duyarlıdır, duyarsız arama için
ILIKE kullanılır.Derinleş: IN, BETWEEN ve LIKE için ipuçları
INlistesine alt sorgu da yazılabilir:WHERE restaurant_id IN (SELECT restaurant_id FROM lk_restaurants WHERE city = 'İzmir').BETWEEN 100 AND 200her iki ucu da kapsar;BETWEEN 200 AND 100hiç satır döndürmez.LIKE '%burger%'baştaki % yüzünden indeks kullanamaz; büyük tablolarda yavaştır.- Büyük/küçük harf davranışı SQL türüne göre değişir: PostgreSQL'de LIKE duyarlıdır (ILIKE duyarsızdır), SQL Server'da harmanlamaya bağlıdır.
SELECT name, price
FROM lk_menu_items
WHERE category IN ('Tatlı', 'İçecek')
AND price BETWEEN 50 AND 120
AND name LIKE '%a%';