SQL'de İki Tabloyu Birleştirme

Sql De Iki Tabloyu Birlestirme



SQL'de tablo birleştirme, belirli bir veritabanındaki iki ayrı tablodaki verilerin ortak bir sütun veya kritere dayalı olarak tek bir birimde birleştirilmesi işlemini ifade eder. Evet, eğer kulağa bir masa gibi geliyorsa, tam olarak öyledir.

Tablo birleştirme veya tablo birleştirme, ilişkisel veritabanlarının bilinen bir özelliğidir ve inanılmaz derecede güçlüdür. Daha tutarlı ve anlamlı veri öngörüleri oluşturmak için birden fazla kaynaktan gelen bilgileri birleştirmemize olanak tanır. Ayrıca, verileri daha sonra başvurabileceğimiz daha küçük, yönetilebilir parçalara ayırabildiğimiz için ilişkisel veritabanlarının yüksek düzeyde ölçeklenebilir olmasına (esnek olmamasına) olanak tanır.

Bu eğitimde tablo birleştirme veya tablo birleştirmenin temellerini ele alacağız. Bilgimizi sağlamlaştırmak için gerçek dünyadaki tablo örneklerine bakalım.







Örnek Tablo

Tablo birleştirme dünyasına girmeden önce gösteri amaçlı kullanacağımız temel tabloları kuralım.



Aşağıdaki örnek sorgularda gösterildiği gibi çalışanları ve maaş bilgilerini içeren iki tabloyu düşünün:



CREATE TABLE çalışanları (

çalışan_id INT AUTO_INCREMENT BİRİNCİL ANAHTARI,

ad VARCHAR( elli ),

soyadı VARCHAR( elli ),

bölüm VARCHAR( elli )

);

Daha sonra örnek verileri aşağıdaki sorgularda gösterildiği gibi çalışanın tablosuna ekleyebiliriz:





INSERT INTO çalışanlar (ad_ad, soyadı, departman) DEĞERLER

( 'Alice' , 'Smith' , 'İnsan kaynakları' ),

( 'Bob' , 'Johnson' , 'Pazarlama' ),

( 'Charlie' , 'Wilson' , 'Finans' ),

( 'Davut' , 'Kahverengi' , 'Satış' ),

( 'Eva' , 'Davis' , 'Mühendislik' );

Devam edelim ve maaş bilgilerini saklayacak yeni bir tablo oluşturalım:

TABLO OLUŞTURMA maaşları (

maaş_id INT AUTO_INCREMENT BİRİNCİL ANAHTARI,

çalışan_id INT,

maaş DECIMAL( 10 , 2 ),

başlangıç_tarihi DATE,

bitiş_tarihi DATE,

YABANCI ANAHTAR (çalışan_id) REFERANSLAR çalışanlar(çalışan_id)

);

Ekleme örnek verilerini aşağıdaki gibi tabloya ekleyin:



Maaşlara INSERT (çalışan_kimliği, maaş, başlangıç_tarihi, bitiş_tarihi) DEĞERLER
( 1 , 60000,00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55000,00 , '2023-01-01' , '2023-12-31' ),
( 3 , 65000,00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58000,00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70000,00 , '2023-01-01' , '2023-12-31' );

Bu bize SQL'de tablo birleştirme/birleştirme kavramını göstermemize yardımcı olabilecek iki tablo sağlamalıdır.

SQL Tablo Birleştirme/Tablo Birleştirmeleri

Yapabileceğimiz çeşitli tablo birleştirme türlerini inceleyelim. Daha gelişmiş olanlara ilerledikçe temel olanları ele alacağız.

İÇ BİRLEŞİM

SQL'deki ilk ve en yaygın tablo birleşimi türü INNER JOIN'dir. INNER JOIN, iki tablodaki satırları belirli bir koşula göre birleştirmemize olanak tanır. Bu tür daha sonra yalnızca tablolar arasında eşleşme olan satırları döndürür.

Örnek olarak daha önce oluşturduğumuz “çalışan” ve “maaş” tablolarını ele alalım. SQL'de INNER JOIN gerçekleştirmek için INNER JOIN yan tümcesini aşağıdaki gibi kullanırız:

SEÇME

e.çalışan_kimliği,

e.ilk_ad,

e.soyadı_adı,

e.bölüm,

maaş

İTİBAREN

çalışanlar e

INNER JOIN maaşları AÇIK

e.çalışan_id = s.çalışan_id;

Verilen örnek sorguda, her iki tabloda da bulunan “employee_id” sütununda “çalışanlar” ve “maaşlar” tablolarını birleştirmek için INNER JOIN kullanıyoruz. Ortaya çıkan küme yalnızca her iki tablodaki eşleşen satırları içerir.

Örnek bir çıktı aşağıdaki gibidir:

SOL DIŞ KATILMA

Ayrıca sol tablodaki tüm satırları ve sağ tablodaki eşleşen satırları birleştiren bir LEFT OUTER JOIN'imiz var. Sağ tabloda eşleşme yoksa birleştirme NULL değerini kullanır.

SEÇME

e.çalışan_kimliği,

e.ilk_ad,

e.soyadı_adı,

e.bölüm,

maaş

İTİBAREN

çalışanlar e

LEFT JOIN maaşları

AÇIK

e.çalışan_id = s.çalışan_id;

Bu örnekte “çalışanlar” ve “maaşlar” tablolarını birleştirmek için LEFT OUTER JOIN gerçekleştiriyoruz. 'Çalışanlar' tablosundaki tüm satırlar dahil edilir ve 'maaşlar' tablosundaki eşleşen satırlar eklenir. Ancak eşleşmeyen satırlar için 'maaş' sütununda NULL değerler yer alır.

SQL BİRLİĞİ

SQL'de tabloları birleştirmenin başka bir yöntemi de UNION operatörünü kullanmaktır. Bu operatör, iki veya daha fazla select ifadesinin sonuçlarını tek bir sonuç kümesinde birleştirmemize olanak tanır.

Birleşimin uygulanabilmesi için her SELECT deyimindeki sütunların aynı veri türüne sahip olması gerekir.

Bir örnek aşağıdaki gibidir:

Çalışan_kimliği, ad, soyad, departman, maaş olarak NULL AS SEÇİN

ÇALIŞANLARDAN e

BİRLİK

Çalışan_kimliğini SEÇİN, NULL AS ad_adı, NULL AS soyadı, NULL AS departman, maaş

Maaşlardan;

Bu durumda SENDİKA “çalışanlar” ve “maaşlar” tablolarını birleştirir. Daha sonra her iki tablonun da benzer sayıda sütuna sahip olmasını sağlamak için her SELECT deyiminde NULL sütunları oluştururuz.

UNION'lar teknik olarak yaygındır ancak özellikle farklı yapılara sahip tabloları birleştirmeniz gerektiğinde yararlı olabilirler.

Çözüm

Bu eğitimde, iki tabloyu tek bir sonuç kümesinde birleştirmenin/birleştirmenin temellerini araştırdık. Bu yazıda tartışılan çok daha gelişmiş birleştirmelerin olduğunu akılda tutmakta fayda var.