ben

OMÜ , Bilgisayar Mühendisliği, 13'

3 Mart 2022 Perşembe

Join işlemleri

 buraya kadar tek bir tablo üzerinde şartlar verip fonksiyonları çalıştırdık. Birden fazla tablo üzerinde işlem yapabilmek için tablolar arası primary key- Foreign key bağlantısını kullanarak join işlemleri yapabiliriz. BUnun için postgresql veritabanının bize sağladığı dvdrental veritabanını kullanabiliriz. Veritabanını indirdikten sonra dvdrental adında bir veritabanı oluşturduktan sonra veritabanına sağ tıklayarak restore ile veritabanımızı yükleyelim. 

Veritabanının şeması aşağıdaki gibi olacaktır.


Join işlemlerinde tablo arası bağlantı yolları ile join bağlantısı yapalım.

1. Temel Join

A ile başlayan Filmleri ve filmlerin dillerini getiren sql komutu için;


Bu yöntem eskide kalmış bir yontemdir. Performans için aynı sorgu inner join ile yazılabilir.

2. İnner Join

A ile başlayan Filmleri ve filmlerin dillerini getiren sql komutu için;


Eğer ikiden fazla tablonuz varsa where komutundan önce inner join diyerek diğer tablolarıda ekleyebiliriz. 

Film isimlerini ve kategori isimlerini getiren sql sorgusu için;

Join işlemi iki tabloda birbirine bağlı olan verileri getirir. birbirine bağlı olmayan veriler inner join bağlantısıyla elde edilmezler. Bunlar için left ya da right join kullanılır.

3. Left Join

Kiralama yapan müşteriler için inner join kullanılırken, hiç kiralama yapmayan müşteriler için left join yada right join kullanılır. Left ile right arasındaki fark tabloların sağamı sola mı yazılacağı ile ilgilidir. Sorgu sonucu her ikisi için de değişmez.

Hiç kiralama yapmayan müşteri bilgileri için sql sorgusu:



Hiç kiralama yapmayan müşteri veritabanında bulunmuyor.

4. Right Join

Aynı sorguyu right join ile yapalım. Tabloların yeri değiştirğinde al sana right join :)

5. Full Outer Join

Left join ile right join yapılarının birleşimidir. İki tablo rasındaki verilerin kontrollü olarak karşılıklı eşitlenerek getirmesidir. Karsılığı olmayan veriler null olarak görünür.

Müşterileri ve kiralama işlemlerinin tümünü getiren sql sorgusu için;


6. Cross Join

iki tablonun verilerinin, kontrolsüz olarak kartezyen çarpım gibi rastgele eşitlenerek gelmesidir. Burada veri tutarlılığından ziyade çok fazla veri üzerinden veritabanındaki sorguların performansını ölçmek amaçlanır.


Joinleri kümeler ile ifade etmek istersek;



Hiç yorum yok: