SQL Tablo İlişkilendirme

Bu konumuzda, Inner Join, Left Outer Join, Right Outer Join, Full Outer Join tablo ilişkilendirme yöntemlerini detaylı şekilde inceliyoruz.

SQL Tablo İlişkilendirme

SQL Tablo İlişkilendirme

Birbiriyle ilişkili tablolar üzerinde sorgulama yapmak için join kullanılır. Birleştirme işlemi ortak bir alana sahip tablolar üzerinde yapılır.

Birden fazla tablo üzerinde yapılan sorgulamalarda her tablonun diğer tablo ile bağlantısını sağlayan ortak alan tabloların birleştirilmesini sağlar.

Tablolar ilişkilendirilirken 4 tür ilişkilendirilme  kullanılır.

  1. Inner Join
  2. Left Outer Join
  3. Right Outer Join
  4. Full Outer Join

1. Inner Join

Inner Join'e göre ilişkilendirilme yapıldığı zaman tablolardaki birleştirilen alana göre sadece ortak kayıtlar gelir.

Kullanım Şekli:

Select Tablo-1_listelenecek_alanlar, Tablo_2_listelenecek_alanlar from Tablo-1 
inner join Tablo-2 On Tablo-1.ortakalan=Tablo-2.ortakalan

Bolum Tablosu

OgrenciTanim Tablosu

Örnek:

Öğrencilerin okuduğu bölümleri listeleyelim.

SELECT
  blmadi,
  adi,
  soyadi,
  adres
FROM Bolum
INNER JOIN OgrenciTanim
ON bolum.blmid = OgrenciTanim.blmid

Örnek 2:

Bilgisayar bölümünde okuyan öğrencileri listeleyelim.

Select * From Bolum inner join OgrenciTanim on Bolum.blmid=OgrenciTanim.blmid
Where blmadi='Bilgisayar'

2. Left Outer Join

Left Outer Join'e göre ilişkilendirilme yapıldığı zaman tablolardaki birleştirilen alana göre ortak kayıtlar ile sol taraftaki tabloda olup sağ taraftaki tabloda olmayan kayıtlarda gelir.

Kullanım Şekli:

Select  Tablo-1_listelenecek_alanlar, Tablo-2_listelenecek_alanlar
from Tablo-1 left outer join Tablo-2 On Tablo-1.ortakalan=tablo-2.ortakalan

Örnek:

Öğrencilerin okuduğu bölümleri listeleyelim.

SELECT
  blmadi,
  adi,
  soyadi,
  adres
FROM bolum
LEFT OUTER JOIN OgrenciTanim
ON bolum.blmid = OgrenciTanim.blmid

Dış ticaret ve İş Sağlığı Güvenliği bölümlerinde öğrenci olmadığı halde "Left Outer Join" yaptığımız için bu bölümlerde gelir. Ancak bu öğrencilere karşılık öğrenci olmadığı için öğrenci bilgileri null olarak gelir.

Örnek 2:

Öğrencisi olmayan bölümleri listeleyelim.

Select blmadi, adi from Bolum left outer join OgrenciTanim on Bolum.blmid = OgrenciTanim.blmid
Where (ogrid IS NULL)

3. Right Outer Join

Right Outer Join'e göre, ilişkilendirilme yapıldığı zaman tablolardaki birleştirilen alana göre ortak kayıtlar ile sağ taraftaki tabloda olup sol taraftaki tabloda olmayan kayıtlarda gelir.

Kullanım Şekli:

Select Tablo-1_listelenecek_alanlar, Tablo-2_listelenecek_alanlar
from Tablo-1 right outer join Tablo-2 On Tablo-1.ortakalan=tablo-2.ortakalan

Örnek:

Öğrencilerin okuduğu bölümleri listeleyelim.

SELECT
  blmadi,
  adi,
  soyadi,
  adres
FROM bolum
RIGHT OUTER JOIN OgrenciTanim
ON bolum.blmid = OgrenciTanim.blmid

Right Outer Join'e göre ilişkilendirme yaptığımız için ortak kayıtlar ile sağ tabloda olup sol tabloda olmayan kayırlarda gelir. Bu yüzden öğrencilerin bölüm bilgileri NULL olarak gelir.

Örnek 2:

Bölümü olmayan öğrencileri listeleyelim.

Select * from Bolum right outer join OgrenciTanim ON Bolum.blmid=OgrenciTanim.blmid
Where (Bolum.blmid is null)

4. Full Outer Join

Full Outer Join'e göre ilişkilendirilme yapıldığı zaman tablolardaki birleştirilen alana göre ortak kayıtlar ile sağ taraftaki tabloda olup sol taraftaki tabloda olmayan kayıtlar gelir ve aynı zamanda sol taraftaki tabloda olup sağ taraftaki tabloda olmayan kayıtlar da gelir.

Kullanım Şekli:

Select  Tablo-1_listelenecek_alanlar, Tablo-2_listelenecek_alanlar
from Tablo-1 full outer join Tablo-2 On Tablo-1.ortakalan=tablo-2.ortakalan

Örnek:

Öğrencilerin okuduğu bölümleri listeleyelim.

SELECT
  blmadi,
  adi,
  soyadi,
  adres
FROM bolum
FULL OUTER JOIN OgrenciTanim
ON bolum.blmid = OgrenciTanim.blmid

Tepkiniz Nedir?

like

dislike

love

funny

angry

sad

wow