SQL Join Nedir? Kullanımı
Yazıda SQL join nedir ile SQL join anlatılmış, MySQL, SQL Server, Oracle vb. sistemlerde SQL join kullanımı ile ilgili bilgi verilmiştir.
JOIN nedir?
Veri tabanı tasarımı ve tablo oluşturma sırasında tablolar çeşitli parçalara ayrılarak veri tekrarının önüne geçilmiş olur.
Parçalara ayrılan tablolar tek başına bir anlam ifade etmeyebilir.
Parçaların anlamlı olabilmesi için tabloların birleştirme işlemine tabi tutulması gerekir.
SQL JOIN ifadesi kullanılarak tablolar sanal olarak birleştirilir ve veriler anlamlı hale gelir.
Özetle; SQL JOIN ifadesi, tabloları birleştirmek için kullanılır.
NOT: JOIN iki veya daha fazla tabloyu birleştirmek için kullanılır.
SQL JOIN kullanımı
SQL join ifadesi kullanılan VTYS göre değişmekle beraber genellikle aşağıdaki gibidir.
SELECT tablo_adi.sutun_adi, ...
FROM tablo_A
{INNER JOIN | LEFT JOIN | RIGHT JOIN} tablo_B ON tablo_A.sutun_adi = tablo_B.sutun_adi;
Aşağıdaki örnekleri kullanarak tabloları birleştirelim.
kategoriler tablosunda bulunan veriler:
kat_id | kat_adi |
---|---|
1 | Bilgisayar |
2 | Telefon |
3 | Elektronik |
urunler tablosunda bulunan veriler:
urun_id | urun_adi | urun_fiyat | kat_id |
---|---|---|---|
1 | Masaüstü Bilgisayar | 1799 | 1 |
2 | Akıllı Telefon | 799 | 2 |
3 | Dizüstü Bilgisayar | 2199 | 1 |
4 | SQL Kitabı | 59 | 99 |
Örneklerde bulunan kategoriler tablosu kat_id ile urunler tablosundaki kat_id adlarına ve değerlerine dikkat edin.
İki parçaya ayrılan tabloları birleştirerek kategorilerde bulunan ürünleri listeleyelim.
Bunun için join kullanabileceğimiz gibi iki tabloyu aşağıdaki gibi sırayla yazarak birleştirebiliriz.
SELECT * FROM kategoriler, urunler;
Bu birleştirme türü CROSS JOIN olarak adlandırılır.
Komut çalıştırıldığında iki tabloda bulunan veriler birbiriyle birleştirilecektir.
Birleştirme için bir koşul belirtilmediğinden kategoriler tablosundaki her satır, urunler tablosundaki tüm satırlarla eşleşir.
Koşul belirterek sadece ilişkili olan sütunları birleştirmek için WHERE koşulu kullanılabilir.
SELECT * FROM kategoriler, urunler WHERE urunler.kat_id = kategoriler.kat_id;
Bu birleştirme türü INNER JOIN olarak adlandırılır.
SQL Join türleri
Çoğunlukla kullanılan join türleri şunlardır.
- (INNER) JOIN: İki tablodaki eşleşen kayıtlar için kullanılır.
- LEFT (OUTER) JOIN: İki tablodaki eşleşen kayıtlar ve eşleşmeyen sol kayıtlar için kullanılır.
- RIGHT (OUTER) JOIN: İki tablodaki eşleşen kayıtlar ve eşleşmeyen sağ kayıtlar için kullanılır.
- FULL (OUTER) JOIN: İki tablodaki eşleşen kayıtlar ve eşleşmeyen sol ve sağ kayıtlar için kullanılır. LEFT ve RIGHT JOIN birleşimidir.
SQL JOIN ayrıca ekleme, güncelleme ve silme işlemlerinde de kullanılabilir.
Hayırlı günler dilerim.