Skip to main content

SQL JOIN Kullanımı: Tabloları Birleştirme Rehberi 🧩

Meta açıklaması: SQL JOIN kullanımıyla birden fazla tabloyu tek sorguda nasıl birleştireceğinizi, INNER-OUTER JOIN farklarını ve alias kullanımını öğrenin.


🎯 Bu Rehberde Ne Öğreneceksiniz?

Bu kapsamlı kılavuzda, SQL'de tabloları birleştirme (JOIN) işlemlerini adım adım öğreneceksiniz.
INNER JOIN ve OUTER JOIN türlerini örneklerle görecek, alias (takma ad) kullanarak sorgularınızı sadeleştirmeyi öğreneceksiniz.
Ayrıca Rabisu’nun sunduğu bulut altyapısında bu örnekleri nasıl test edebileceğinizi de göstereceğiz.


🧠 Aşama 1 – Teknik Analiz

  • Ana konu: SQL’de JOIN işlemleri (INNER, OUTER, LEFT, RIGHT).
  • Amaç: Farklı tablolardaki ilişkili verileri tek bir sorguda birleştirerek anlamlı sonuç kümeleri oluşturmak.
  • Özet: Bu rehberde örnek veritabanı kurup JOIN sözdizimini, eşleşme koşullarını (ON / USING), alias kullanımı ve performans ipuçlarını öğreneceksiniz.

⚙️ 1. Ortamı Hazırlama

MySQL Sunucusuna Bağlan

ssh [email protected]
mysql -u admin -p

💬 Bu komutlar MySQL'e bağlanmanızı sağlar.

Örnek Veritabanı Oluştur

CREATE DATABASE rabisu_db;
USE rabisu_db;

💬 Yeni veritabanını oluşturur ve aktif hale getirir.


🧱 2. Örnek Tabloları Kur

Tablo Amacı Anahtar urunler Ürün bilgilerini tutar urunID ekip Satış personeli bilgisi calisanID, urunUzmanlik satislar Satış kayıtları satisID, urunID, satisElemani

Ürünler Tablosu

CREATE TABLE urunler (
urunID INT PRIMARY KEY,
urunAdi VARCHAR(20),
fiyat DECIMAL(5,2)
);

💬 Ürün kimliği, adı ve fiyat bilgisi.

Ekip Tablosu

CREATE TABLE ekip (
calisanID INT PRIMARY KEY,
calisanAdi VARCHAR(20),
urunUzmanlik INT,
FOREIGN KEY (urunUzmanlik) REFERENCES urunler(urunID)
);

💬 Çalışanların uzman olduğu ürünü ilişkilendirir.

Satışlar Tablosu

CREATE TABLE satislar (
satisID INT PRIMARY KEY,
adet INT,
urunID INT,
satisElemani INT,
FOREIGN KEY (urunID) REFERENCES urunler(urunID),
FOREIGN KEY (satisElemani) REFERENCES ekip(calisanID)
);

💬 Her satış kaydını ürün ve çalışanla ilişkilendirir.


💾 3. Verileri Ekle

INSERT INTO urunler VALUES
(1, 'Gecitci', 18.99),
(2, 'Aletcik', 14.49),
(3, 'Cihazcik', 39.99),
(4, 'Merdane', 11.50),
(5, 'NeOlaKi', 29.99);

💬 Ürün listesini oluşturur.

INSERT INTO ekip VALUES
(1, 'Elif', 1),
(2, 'Ali', 4),
(3, 'Deniz', 3),
(4, 'Burak', 2);

💬 Satış ekibi bilgileri.

INSERT INTO satislar VALUES
(1, 7, 1, 1),
(2, 10, 5, 4),
(3, 8, 2, 4),
(4, 1, 3, 3),
(5, 5, 1, 3);

💬 Örnek satış verileri.


🔗 4. JOIN Kullanımı

INNER JOIN (Varsayılan)

SELECT ekip.calisanAdi, urunler.urunAdi, urunler.fiyat
FROM urunler JOIN ekip
ON urunler.urunID = ekip.urunUzmanlik;

➡️ Her iki tabloda eşleşen kayıtları getirir.

USING ile Kolay Birleştirme

SELECT satislar.satisID, satislar.adet, urunler.urunAdi
FROM satislar JOIN urunler USING (urunID)
ORDER BY satisID;

➡️ Aynı isimli sütunlarda ON yerine USING kullanılabilir.

LEFT JOIN (Tüm Satışları Göster)

SELECT s.satisID, s.adet, e.calisanAdi
FROM satislar AS s
LEFT JOIN ekip AS e
ON s.satisElemani = e.calisanID;

➡️ Eşleşmeyen satışlarda NULL döner.

RIGHT JOIN (Tüm Çalışanları Göster)

SELECT s.satisID, s.adet, e.calisanAdi
FROM satislar AS s
RIGHT JOIN ekip AS e
ON s.satisElemani = e.calisanID;

➡️ Tüm çalışanları listeler, satış yapmayanlar NULL döner.

FULL OUTER JOIN (MySQL’de Alternatif)

MySQL’de FULL JOIN doğrudan yoktur, UNION ile taklit edilebilir:

SELECT * FROM satislar LEFT JOIN ekip ON satislar.satisElemani = ekip.calisanID
UNION
SELECT * FROM satislar RIGHT JOIN ekip ON satislar.satisElemani = ekip.calisanID;

🧮 5. Alias (Takma Ad) Kullanımı

SELECT S.satisID, S.adet, P.urunAdi, (P.fiyat * S.adet) AS gelir
FROM satislar AS S JOIN urunler AS P USING (urunID);

💬 Alias sorguyu kısaltır ve okunabilirliği artırır.


⚡ 6. Performans İpuçları JOIN işlemlerini hızlandırmak için:

Birleştirme yapılan sütunlara INDEX ekleyin.

Gereksiz sütunları SELECT kısmında çağırmayın.

Karmaşık JOIN’lerde sorguyu önce test edin.


❓ Sıkça Sorulan Sorular (SSS)

  1. JOIN ve WHERE farkı nedir?

JOIN tabloları birleştirir, WHERE sonucu filtreler.

  1. LEFT JOIN ne zaman kullanılır?

Sol tablodaki tüm verileri tutmak istediğinizde.

  1. FULL JOIN MySQL’de nasıl yapılır?

UNION kullanarak hem sol hem sağ JOIN sonuçlarını birleştirerek.

  1. JOIN performansını artırmanın en iyi yolu nedir?

JOIN sütunlarına dizin (index) eklemek.


☁️ Sonuç ve Öneri

Bu rehberde SQL JOIN kullanımı’nı öğrenerek ilişkili tabloları tek sorguda birleştirmeyi öğrendin. JOIN işlemleri veri analizi, raporlama ve veri bütünlüğü için vazgeçilmezdir. 💼 Veritabanı deneyimini bir üst seviyeye taşımak için Rabisu Bulut altyapısında MySQL örneklerini hemen oluşturabilir, pratik yapabilirsin.