Birleştirme (Join) İşlemleri

Birleştirme (Join), SQL dillerinde farklı tabloların birbirleriyle ilişkili verilerini birleştirmek ve analiz etmek için kullanılan bir işlemdir. Veri tabanı tasarımlarında, veriler genellikle farklı tablolara bölünür. Bu verileri bir araya getirmenin yolu, birleştirme (join) operasyonları kullanmaktır. Şimdi, farklı join türlerini detaylıca inceleyelim.
1. INNER JOIN: Ortak Kıyaslama
Tanım: INNER JOIN
, iki tablodaki eşleşen kayıtları getiren bir birleştirme türüdür. Bu tür birleştirmede, birleştirme koşulunu sağlamayan kayıtlar görülmez.
Kullanım Senaryosu: Müşteriler ve siparişlerin saklandığı iki tablo düşünüldüğünde, sadece sipariş vermiş olan müşterileri listelemek için kullanılır.
Sorgu Örneği:
SELECT m.musteri_id, m.isim, s.siparis_tarihi
FROM Musteriler m
INNER JOIN Siparisler s ON m.musteri_id = s.musteri_id;
2. LEFT JOIN ve RIGHT JOIN: Eksik Verilerle Çalışma
LEFT JOIN:
Tanım: LEFT JOIN
, sol tablodaki tüm kayıtları getirir ve sağ tabloda eşleşen kayıtları dahil eder. Sağ tabloda eşleşme yoksa, bu kayıtlar NULL
ile dönülür.
Kullanım Senaryosu: Tüm müşterilerin listelenmesi ve sipariş vermeyenlerin de dahil edilmesi.
Sorgu Örneği:
SELECT m.musteri_id, m.isim, s.siparis_tarihi
FROM Musteriler m
LEFT JOIN Siparisler s ON m.musteri_id = s.musteri_id;
RIGHT JOIN:
Tanım: RIGHT JOIN
, sağ tablodaki tüm kayıtları getirir ve sol tabloda eşleşen kayıtları dahil eder. Sol tabloda eşleşme yoksa, bu kayıtlar NULL
ile dönülür.
Kullanım Senaryosu: Sadece sipariş verilen ürünleri, bu ürünlere ait olmayan müşteri bilgileriyle birlikte görmek için kullanılabilir.
Sorgu Örneği:
SELECT s.siparis_id, s.urun_adi, m.isim
FROM Siparisler s
RIGHT JOIN Musteriler m ON s.musteri_id = m.musteri_id;
3. FULL OUTER JOIN: Tüm Verileri Getirme
Tanım: FULL OUTER JOIN
, iki tablodaki tüm kayıtları getirir. Her iki tabloda da eşleşme yoksa, karşı tablodan gelen değer NULL
ile dönülür.
Kullanım Senaryosu: Sipariş vermeyen müşterilerle birlikte satılmamış ürünleri listelemek için kullanılabilir.
Sorgu Örneği:
SELECT m.musteri_id, m.isim, s.urun_adi
FROM Musteriler m
FULL OUTER JOIN Siparisler s ON m.musteri_id = s.musteri_id;
4. CROSS JOIN ve Kartesyen Çarpım
Tanım: CROSS JOIN
, iki tablodaki tüm kayıtları birbirleriyle eşleştirir ve kartesyen çarpımını oluşturur. Sonuç tablosu, bir tablodaki satır sayısı ile diğer tablodaki satır sayısının çarpımı kadar olur.
Kullanım Senaryosu: Tüm ürün kombinasyonlarını ve fiyat analizlerini hesaplamak için kullanılabilir.
Sorgu Örneği:
SELECT u.urun_adi, k.kategori_adi
FROM Urunler u
CROSS JOIN Kategoriler k;
5. SELF JOIN
Tanım: SELF JOIN
, bir tablonun kendisiyle birleştirilmesidir. Aynı tabloyu iki kez kullanarak iki farklı grubu birbiriyle ilişkili hale getirir.
Kullanım Senaryosu: Bir organizasyonda çalışanlarla yöneticilerini listelemek için kullanılabilir.
Sorgu Örneği:
SELECT e1.calisan_adi AS Calisan, e2.calisan_adi AS Yoneticisi
FROM Calisanlar e1
INNER JOIN Calisanlar e2 ON e1.yonetici_id = e2.calisan_id;
SQL birleştirme (join) işlemleri, veri tabanı analizi için kritik bir öneme sahiptir. Doğru birleştirme türünün seçilmesi, raporlama ve veri manipülasyonu süreçlerinde hızlı ve etkili sonuçlar elde etmenizi sağlar. Bu yazıdaki her birleştirme türü, farklı senaryolara uygun çözümler sunar ve birleştirme işlemlerinin temelini oluşturur.