MS SQL III JOIN İşlemleri

İlk yazıda ilk tablo işlemleri ele alınmıştı. Tablonun oluşturulması, veri eklenmesi, silinmesi ve düzeltilmesi gibi işlemler için farklı komutlar incelenmişti. 2. Yazıda ise SELECT, TOP, WHERE, DISTINCT ve ORDER BY gibi genel komutlar incelenmişti. Merak edenler 1. yazıyı buradan 2. yazıyı buradan inceleyebilir.

Yazı serisinin bu bölümünde ise JOIN işlemleri anlatılacaktır. JOIN exceldeki düşey gibi çalışır. 2 tablonun ortak bir kolonu referans gösterilerek 2. tablodaki istenilen kolon değerleri 1. tablodaki kolon referans kolonun yanına getirilir. En fazla ihtiyaç duyulan komutlardandır.

İlişkisel veri tabanı oluşum mimarisi JOIN kullanımında önemli bir olgudur. Örneğin bir e ticaret veri havuzunda müşteri verilerinin tutulduğu tablo, alışveriş verisinin olduğu başka bir tablo ve sepet verilerinin tutulduğu başka bir tablo olmuş olsun. Bu durumda 3 tabloda ortak olan ya da 2 şerli tablolarda en az bir ortak olan kolon bulunmalıdır. Bulundurulmadığı durumda müşteri bilgilerinin alışveriş bilgileri veya sepet bilgileriyle eşleştirilmesi çok zorlaşır. Bu gibi durumlarda genelde merkezi bir kolon seçilir. Örneğin “**** ID” olabilir. Genellikle İNT sayı biçiminde olur. Her tabloda bu ID tekildir ve aynıdır. Örneğin kullanıcı giriş yapıp sepete bir ürün bıraktığında yeni bir ID atar. Alışveriş verisinde  de aynı ID bulunur. Müşteri bilgileri ile giriş yapıldığı için atanan ID’ye ait müşteri bilgileri tutulur. İleri ki bir zamanda bir ürünün hangi sıklıkla sepete alınıp alınmadığı, hangi müşteri grubu tarafından alındığı gibi sorularını cevaplayabilmek için veri toplanması gerektiğinde atanan ID referans kabul edilir. Bu referans üzerinden JOIN’ler ile veriler derlenir. Daha sonrasında bir analiz programı ile algoritma çalıştırılır.

Temelde 4 farklı JOIN yapısı mevcuttur. Bunlar LEFT JOIN, RIGHT JOIN, INNER JOIN ve FULL JOIN’dir. Aralarındaki farklar 1. görselde sunulmuştur. Sadece JOIN’de kullanılabilir. Bu durumda INNER JOIN gibi çalışır.

LEFT RIGHT INNER FULL JOIN Kullanımı
Görsel 1. JOIN Kullanımı

Görsel 1’de JOIN işlemleri görselleştirilmiştir. A ve B tabloları JOIN’den sonraki ON operatörü ile belirtilmektedir. ON operatörünün sol tarafı A (ilk tablo) sağ tarafı B (2. Tablo) olur. FROM içine A tablosunun adı yazılır ve yine JOIN’den sonraki kısmına B tablosunun adı yazılır.

Birinci sorguda A tablosunun AboneNo’ları B tablosunun İlKodları A tablosu referans kabul edilerek birleştirilmiş. A tablosundaki tüm AboneNo’lar gelir. B’de karşılığı olmayan İlkodlaru ‘NULL’ olarak gelir.

İkinci sorguda ise B tablosu referans tablo seçilmiş. B’deki tüm il kodları gelir. Bazı AboneNo’lar ‘NULL’ gelecektir. Ayrıca WHERE ile kullanımı göstermek için sorguda B tablosunda Dönemi 202002 olmayanlar çekilmiş.

Üçüncü sorguda iki tablonun kesişim kümesi çekilir. NULL olan satırlar gelmez. ORDER BY ile kullanımıda görselleştirilmiştir. A tablosundaki AboneNo’ya göre sıralama yaptırılmış.

Dördüncü sorguda da iki tablonun ikisi de referans kabul edilmiş ve iki tabloda eşleşmeyen kısımlar dahil olmak üzere birleşim kümesi gelir. Hem A tablosundan AboneNo’larda hem de B tablosundan IlKodları ‘NULL’olabilir.

Eğer WHERE’li kullanımlar olmasaydı en fazla satır sayısı 4. sorguda en az satır sayısı ise 3. sorguda gelecektir.

JOIN’li sorgular bazı durumlarda çok karmaşık olduğu için tablolara A ve B diye isim verilir. Bu isimler değişebilir. Harflerin bir önemi yoktur. Özellikle birden fazla JOIN’li durumda. Görsel 2’de çoklu JOIN durumları görselleştirilmiştir.

MULTİJOIN , çoklu joın kullanımı
Görsel 2. Çoklu JOIN Kullanımı

Not:Eğer Available Database kısmında seçili dbo. ‘da çalışmıyorsanız tablo isimlerini “veritabanıadı.dbo.tabloadı” olarak yazmalısınız.

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.