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;
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:
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:
Yorum Gönder