SQL Join nedir? SQL Join işlemleri nasıl yapılır? SQL Join kullanımı?

1

SQL Join nedir? SQL Join işlemleri nasıl yapılır? 

SQL ile sorguda birden fazla tablo kullanarak veri çekme işlemini nasıl yapabiliriz?

SQL ile tablo birleştirme Join ile nasıl yapılır?

SQL Join türleri nelerdir?

Inner Join, Left ve Right Outer Join, Full Outer Join, Natural Join?

 

 

mujde mujde (17)
3 yıl önce sordu

Toplam 2 Cevap


0

Veri tabanları (Database) sadece 1 tablodan oluşmaz. Bunun sebebi genellikle veri tekrarını önlemektir. Bu şekilde oluşturulmuş veri tabanlarında, tablolardaki değerleri birbirleriyle ilişkili bir şekilde kullanabilmek için “Tablo Birleştirme” işlemi yapılır.

Bu birleştirme işlemi 2 farklı tablo için de söz konusu olabilmektedir. ikiden fazla sayıda tablo için de söz konusu olabilir. Dikkat edilmesi gereken nokta, tabloların Primary Key ve Foreign Key‘ler ile birbirlerine bağlanmış olması gerektiğidir.

İhtiyacımız olduğunda tablo birleştirme işlemlerini gerçekleştirdiğimizde birbiri ile ilişkili verilerimizi farklı tablolardaki birbirini tamamlayan verilerin tek bir tablo gibi sorgu sonucunda birleştirilerek verilerimizin listelenmesine olanak sağlayan ifadelere JOIN denilmektedir.

JOIN ifadesi ile bir tabloyu kendisiyle birleştirebileceğimiz gibi birden fazla tabloyu da bu ifade ile birleştirmek mümkündür. Bu birleştirme işlemlerini gerçekleştirdiğimizde istediğimiz işlemlere yönelik farklı metotlar kullanabiliriz. Bu farklı metotlar JOIN ifadesi ile kendi içinde farklı komutlar vasıtasıyla gerçekleştirilmektedir. Dolayısıyla, veri tabanı programlamalarında JOIN ifadeleri olmazsa olmazlar arasındadır.

 

Birden Fazla Tabloda Tutulan İlişkisel Verileri Almak

Yukarıda bahsettiğimiz gibi Film bilgilerinin tutuldugu bir veritabanimiz olsun. Bu veritabaninda Filmler ve Film Türlerini tutmak için 2 farkli tablo kullanalim. 1. tablo film bilgilerini 2. tablo film türlerini ait bilgilerini tutsun. Örnegimizde kullanacagimiz basit veritabanini kullanmak için asagidaki SQL scriptini kendi SQL server ımızda çalıştıralım.

 

INNER JOIN

Inner Join en çok kullanılan Join türüdür ve her iki tablodaki ortak kayıtları döndürür. Bir başka ifade ile iki tablonun kesişimini döndürür. Mesela film ve film türleri tablolarını birleştirmek istersek;

SELECT * FROM Filmler  f
INNER JOIN FilmTurleri ft 
ON f.film_tur_id = ft.tur_id

Sonuç kümesinde her iki tablonun kesişimini döndürmüş oluyor. 

 

OUTER JOIN

Inner Join ile birleştirilecek tabloların kesişim kümeleri alınıyordu . Outer Join ile ilişkili olmayan satırlarda listelenir.

SELECT * FROM Filmler  f
OUTER JOIN FilmTurleri ft 
ON f.film_tur_id = ft.tur_id

 

LEFT ve RIGHT OUTER JOIN

Eğer bir tablodaki tüm kayıtlar ile diğer tablodaki birleştirme koşulunu sağlayan kayıtları döndürmek istersek Right veya Left Outer Join kullanırız. 

 

LEFT JOIN : İlk (Filmler) tablo için boş olan verileri de göstermenizi sağlar. Yani Filmler tablosunda Tur_ID değeri boş olarak gösterilecektir.

SELECT * FROM Filmler f
LEFT JOIN FilmTurleri ft
ON f.film_tur_id = ft.tur_id

Yukarıdaki sorgu, türü olmayan filmler dahil tüm filmleri getirecektir.

 

RIGHT JOIN : İkinci (Film Türleri) tablo için boş olan verileri de göstermenizi sağlar. Aşağıdaki gibi kullanabilirsiniz ;

SELECT * FROM Filmler f
RIGHT JOIN FilmTurleri ft
ON f.film_tur_id = ft.tur_id

 

FULL JOIN : İki tablo için de boş olan değerlerle beraber gösterir.

SELECT * FROM Filmler f
FULL OUTER JOIN FilmTurleri ft
ON f.film_tur_id = ft.tur_id

 

NATURAL JOIN : Natural join, iki tablo arasında aynı isimde olan sütunları birbiriyle otomatik olarak bağlayan bir Join türüdür.

SELECT * FROM Filmler f
NATURAL JOIN FilmTurleri ft

 

 

CROSS JOIN (Çapraz Birleştirici) : Kartezyen çarpım (cartesian product) olarak ta bilinen bu seçenekte ortak bir alan belirtilmesine gerek kalmadan iki tablo arasında tüm eşleştirmeleri listeler. Bunu da soldaki tablodaki her bir satıra karşılık sağdaki tablonun tüm satırlarını döndürerek gerçekleştirir.
 

SELECT * FROM Filmler f
CROSS JOIN FilmTurleri ft

 
 

Syntax : Sözdizimi
 

SQL Join Syntax  ile ilgili olarak şunları hatırlatmakta fayda vardır;

– Inner Join yerine sadece Join 

– Left Outer Join yerine sadece Left Join 

– Right Outer Join yerine sadece Right Join yazmamız yeterlidir.

 

 

 
ergin ergin (2515)
3 yıl önce cevaplandı

  • Cevabınız için çok teşekkür ederim. Emeğinize Sağlık mujde 3 yıl önce

0

tüm bilgiler ve paylaşılan konular için minnettarım çok sağ olun

neron neron (-99)
3 yıl önce cevaplandı

  • rica ederim. tüm sorunularınızı cevaplanmaya devam edilecektir. ergin 3 yıl önce

üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol