MSSQL Dersleri #08: MSSQL JOIN Mimarisi

MSSQL JOIN Mimarisi: INNER, LEFT, RIGHT, FULL OUTER ve CROSS JOIN

SQL’de JOIN, iki veya daha fazla tablodan veri almak için kullanılan önemli bir işlemdir. MSSQL’de farklı türlerde JOIN’ler bulunmaktadır ve her biri belirli bir amaca hizmet eder. Bu makalede, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN ve CROSS JOIN’lerin nasıl kullanıldığını ve hangi durumlarda hangi JOIN’in kullanılması gerektiği incelenecektir.

INNER JOIN

INNER JOIN, iki tablodaki ortak kayıtları döndürür. Yani, her iki tabloda da eşleşen kayıtların birleştirilmesi sonucunda oluşan sonuç kümesini döndürür.

-- INNER JOIN örneği
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;Code language: SQL (Structured Query Language) (sql)

Yukarıdaki örnekte, Orders ve Customers tabloları arasında CustomerID sütununa göre eşleşen kayıtlar döndürülür.

LEFT JOIN

LEFT JOIN, sol tablodaki tüm kayıtları ve sağ tablodaki eşleşen kayıtları döndürür. Sağ tabloda eşleşmeyen kayıtlar için NULL değerler döndürülür.

-- LEFT JOIN örneği
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;Code language: SQL (Structured Query Language) (sql)

Yukarıdaki örnekte, Orders tablosundaki tüm kayıtlar ve Customers tablosundaki eşleşen kayıtlar döndürülür. Customers tablosunda eşleşmeyen kayıtlar için CustomerName sütunu NULL değerler döndürülür.

RIGHT JOIN

RIGHT JOIN, sağ tablodaki tüm kayıtları ve sol tablodaki eşleşen kayıtları döndürür. Sol tabloda eşleşmeyen kayıtlar için NULL değerler döndürülür.

-- RIGHT JOIN örneği
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;Code language: SQL (Structured Query Language) (sql)

Yukarıdaki örnekte, Customers tablosundaki tüm kayıtlar ve Orders tablosundaki eşleşen kayıtlar döndürülür. Orders tablosunda eşleşmeyen kayıtlar için OrderID sütunu NULL değerler döndürülür.

FULL OUTER JOIN

FULL OUTER JOIN, iki tablodaki tüm kayıtları döndürür. Eşleşmeyen kayıtlar için NULL değerler döndürülür.

-- FULL OUTER JOIN örneği
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
FULL OUTER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;Code language: SQL (Structured Query Language) (sql)

Yukarıdaki örnekte, Orders ve Customers tabloları arasındaki tüm kayıtlar döndürülür. Eşleşmeyen kayıtlar için NULL değerler döndürülür.

CROSS JOIN

CROSS JOIN, iki tablonun kartezyen çarpımını döndürür. Yani, her bir tablodaki her bir kaydın diğer tablodaki her bir kayıtlarıyla birleştirilmesi sonucunda oluşan sonuç kümesini döndürür.

-- CROSS JOIN örneği
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
CROSS JOIN Customers;Code language: SQL (Structured Query Language) (sql)

Yukarıdaki örnekte, Orders ve Customers tabloları arasındaki kartezyen çarpımı döndürülür. Her bir Orders kaydı, Customers tablosundaki her bir kayıtlarıyla birleştirilir.

💡 Kıdemli DBA Triki: JOIN’lerin doğru kullanılması, sorgunun performansını önemli ölçüde etkileyebilir. Özellikle büyük tablolar üzerinde çalışırken, JOIN’lerin sırası ve türü dikkatli olarak düşünülmelidir.

Canlı Ortam Uyarısı

⚠️ Canlı Ortam Uyarısı: JOIN’lerin kullanılması, sorgunun performansını etkileyebilir. Özellikle büyük tablolar üzerinde çalışırken, JOIN’lerin sırası ve türü dikkatli olarak düşünülmelidir. Ayrıca, JOIN’lerin kullanılması, sorgunun sonuç kümesinin büyüklüğünü artırabilir. Bu nedenle, sorgunun sonuç kümesinin boyutu dikkate alınmalıdır.

Umarım bu makale, MSSQL’de JOIN’lerin nasıl kullanıldığını ve hangi durumlarda hangi JOIN’in kullanılması gerektiği konusunda size yardımcı olmuştur. İyi çalışmalar!

NasuhAkay
NasuhAkay

Nasuh Akay, 20 yılı aşkın IT deneyimine sahip; kurumsal teknoloji çözümleri, ERP sistemleri, yazılım geliştirme, veri yönetimi ve dijital dönüşüm alanlarında çalışmalar yürüten bir teknoloji profesyonelidir.

Kariyeri boyunca farklı sektörlerde edindiği deneyimlerini; teknoloji, yazılım, veri mimarisi ve iş süreçlerinin geliştirilmesi üzerine yoğunlaştırmıştır.

Bu blogda ERP çözümleri, SQL Server, yazılım geliştirme, yapay zekâ, dijital dönüşüm ve teknoloji dünyasındaki gelişmeler üzerine bilgi, deneyim ve teknik paylaşımlarını okuyucularla buluşturmaktadır.

Amacı, karmaşık teknik konuları anlaşılır bir dille ele almak, gerçek hayatta karşılaşılan problemlere yönelik uygulanabilir çözümler sunmak ve teknoloji alanındaki bilgi birikimini paylaşmaktır.

Articles: 1065

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir