24 Haziran 2015 Çarşamba

6-) Mysql 'de "Join" Kullanımı

Bir sorguda birden fazla tablo kullanmak istediğimizde bunu joinlerle yapmak oldukça kolay olacaktır.Joinler 4  gruptan oluşur:
  1. Inner Join
  2. Left Join
  3. Right Join
  4. Full Join  
Şimdi kitaplar ve yazarlar adında iki tablo oluşturalım ve işlemleri bu tablolar arasında yapalım.

Kitaplar Tablosu :


Yazarlar Yablosu :


1.Inner Join  : Sql dilinin temel komutlarından Inner Join ile  birden fazla tabloda birebir eşleşen kayıtları getirmemizi sağlar.Inner Join kullanmak sitemizin hızını arttırdığı gibi sayfa içerisinde kod kalabalığınıda minimum seviyeye indirmiş olacağız.


Şekilde de görüldüğü gibi sadece ortak olan alanlar birleşiminden Inner Join oluşur.Aşağıdaki sorguda kitaplar tablosundan kitap ismi ile yazarlar tablosundan yaşı veren sorgudur.


Sonuç :


Yaptığımız şey çok basit, “SELECT  * FROM” derken yıldız yerine bize geri dönülmesini istediğimiz alanları yazıyoruz, bunu yazarken kuralımız ise; “tabloismi.alanismi” önce tablo ismini yazıyoruz sonra nokta, sonra alanismi. Biz burada iki tane alan belirledik. Ardından birinci tablomuzu yazıyoruz, sonra “INNER JOIN yazarlar” diyoruz. (hangi tablo ismini önce yazdığımız, inner join kullanırken farketmiyor.) Ardından iki tablonun birleşme şartını belirtiyoruz: “ON yazarlar.id = kitaplar.id” Sonuç olarak bize kitap isimleri ve yazarının yaşı geri dönmüş oluyor. 

2.Left Join  : Left join önce solda bulunan tablonun tamamını alır ve daha sonra sağda bulunan tabloda eşleşenleri gösterir, yoksa NULL değerini döndürür.


Aşağıdaki sorguda kitaplar tablosunda ki kitap ismi ile yazarlar tablosunda ki yazar ismini left join ile bize veren sorgudur.


 Sonuç :

  
Aslında kodun yaptığı iş, bir önceki inner join’in yaptığı iş ile neredeyse aynı, ancak left join, soldaki tablonun tamamını alır. Bu sql cümlesinde “kitaplar LEFT JOIN yazarlar” kitaplar soldaki tablo ve bu tablonun tamamı sonuç tablosunda yer alır. Şu anki sql cümlemizde bu bir sakınca yaratmadı ancak yazarı olmayan bir kitap olsaydı, yazar sütununda “null” yazacaktı. Bir sonraki örnekte bu daha rahat görülebilir.

3.Right Join  : Left join ile right join hemen hemen aynıdırlar, right join cümlesinin yaptığı iş sadece sağdaki tablonun tamamını almak.


Aşağıdaki sorguda kitaplar tablosunda ki kitap ismi ile yazarlar tablosunda ki yazar ismini right join ile bize veren sorgudur. 


Sonuç :


4.Full Join  :  Full join Left Join ve Right Join birlikte kullanılarak  yada sadece join olarak sorgu yazdığımızda iki tablonun birleşimini bize verir.


Sonuç olarak :
İlişkili veritabanlarında “join” cümleleri çok işe yarar, ve genellikle “inner join” pek çok kez kullanılır. Left join ile right join birbirlerine benzerler, sadece biri soldaki, diğer sağdaki tablonun tamamını alır ve yukarıdaki örnekte olduğu gibi, eğer ilgili yazarın her hangi bir kitabı yoksa, geri döndürdüğü değerlerde “null” kelimesine rastlanabilir.

Hiç yorum yok:

Yorum Gönder