Veritabanı sözdizimi, kullanıcıların veritabanı üzerinde etkili sorgular çalıştırmasına olanak tanır. Bu makalede, ıleri seçim tekniklerinden LIKE operatörü, IN ve NOT IN, BETWEEN ve CASE kullanımları detaylı olarak ele alınmıştır.


LIKE Operatörü ile Desen Arama

LIKE operatörü, belirli bir düzeni (pattern) karşılamak için kullanılır. Bu, genellikle metin tabanlı veri aramalarında kullanışlıdır.

Temel Kullanım

LIKE operatörü iki joker karakter ile kullanılır:

  • %: Sıfır veya daha fazla karakteri temsil eder.
  • _: Tek bir karakteri temsil eder.

Örnek Sorgular:

-- ‘A’ harfiyle başlayan tüm isimleri getirir.
SELECT * FROM musteriler WHERE ad LIKE 'A%';

-- ‘son’ ile biten tüm şehirleri getirir.
SELECT * FROM sehirler WHERE isim LIKE '%son';

-- İkinci karakteri ‘e’ olan tüm kayıtlar.
SELECT * FROM urunler WHERE kod LIKE '_e%';

Avantajlar

  • Dinamik aramaları kolaylaştırır.
  • Büyük/küçük harf duyarlılığı, veritabanına bağlı olarak ayarlanabilir.

Performans İpucu

  • LIKE '%...%' gibi sorgular dizinleri kullanamadığı için yavaş çalışabilir. Gerekliyse düzenli ifade (regex) veya full-text arama kullanılabilir.

IN ve NOT IN Kullanımı

IN ve NOT IN, bir alanın belirli bir liste içindeki değerlere eşit olup olmadığını kontrol eder.

IN Kullanımı

-- Belirli şehirlerdeki müşterileri getirir.
SELECT * FROM musteriler WHERE sehir IN ('Ankara', 'Istanbul', 'Izmir');

NOT IN Kullanımı

-- Belirli şehirlerde bulunmayan müşterileri getirir.
SELECT * FROM musteriler WHERE sehir NOT IN ('Ankara', 'Istanbul', 'Izmir');

Performans ve Kullanım

  • İç içe sorgularla kombine edilebilir:
SELECT * FROM urunler WHERE kategori_id IN (SELECT id FROM kategoriler WHERE aktif = 1);
  • NULL değerleriyle dikkatli olunmalıdır. NOT IN, NULL değerler içeriyorsa beklenmedik sonuçlar verebilir.

BETWEEN ile Aralık Sorguları

BETWEEN, bir alanın belirli bir aralıkta olup olmadığını kontrol eder. Sayısal, tarih ve metin değerleriyle kullanılabilir.

Sayısal Aralıklar

-- Fiyatı 100 ile 500 arasında olan ürünler.
SELECT * FROM urunler WHERE fiyat BETWEEN 100 AND 500;

Tarih Aralıkları

-- 2024 yılı içinde yapılan satışlar.
SELECT * FROM satislar WHERE tarih BETWEEN '2024-01-01' AND '2024-12-31';

Metin Aralıkları

-- ‘A’ ile ‘M’ arasında başlayan isimler.
SELECT * FROM musteriler WHERE ad BETWEEN 'A' AND 'M';

Performansı Artırma

  • BETWEEN operatörü genellikle dizinlerden faydalanabilir, bu nedenle büyük veri setlerinde performans dostudur.

CASE ile Koşullu Değerler

CASE, bir alanın değerine göre farklı sonuçlar döndürebilen koşullu bir yapıdır.

Temel Kullanım

SELECT
    ad,
    fiyat,
    CASE
        WHEN fiyat < 100 THEN 'Ucuz'
        WHEN fiyat BETWEEN 100 AND 500 THEN 'Orta'
        ELSE 'Pahali'
    END AS fiyat_kategorisi
FROM urunler;

Gruplama ile Kullanım

-- Satış toplamlarını kategorilere göre gruplama.
SELECT
    kategori_id,
    SUM(tutar) AS toplam_tutar,
    CASE
        WHEN SUM(tutar) > 10000 THEN 'Yüksek'
        ELSE 'Düşük'
    END AS gelir_kategorisi
FROM satislar
GROUP BY kategori_id;

İçiçe CASE Kullanımı

Bir CASE yapısı içinde başka bir CASE yapısı kullanılabilir:

SELECT
    ad,
    CASE
        WHEN fiyat < 50 THEN
            CASE
                WHEN stok > 10 THEN 'Ucuz ve Bol'
                ELSE 'Ucuz ama Az'
            END
        ELSE 'Pahali'
    END AS urun_degerlendirme
FROM urunler;

Bu makalede, LIKE, IN/NOT IN, BETWEEN ve CASE kullanımları detaylandırılmıştır. Bu operatörler ve yapılar, sorguların daha okunabilir, etkili ve esnek olmasına olanak tanır. Etkili bir veritabanı yönetimi için bu tekniklerin doğru kullanılması çok önemlidir.

Tepkiniz ne oldu ?

Heyecanlı
0
Mutlu
0
Aşık
0
Emin değilim
0
Şapşal
0

İlginizi Çekebilir

Bir cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Daha fazlası:Geliştirme