Üç ana SQLite birleştirme türü vardır.
- ÇAPRAZ BİRLEŞTİRME
- İÇ BİRLEŞİM
- SOL DIŞ KATILMA
Bu öğretici, bu SQLite birleşimlerinde size hızlı bir şekilde yol gösterecek ve veritabanı kayıtlarına nasıl katılacağınızı gösterecektir.
Basit olduğu için INNER JOIN ile başlayalım ve diğer JOIN türlerini anlamamız için bir temel oluşturalım.
1: İÇ BİRLEŞTİRME
INNER JOIN, belirtilen tabloların değerlerini birleştirerek yeni bir tablo oluşturarak çalışır. Her tablodaki satırı karşılaştırarak ve belirtilen yüklem başına eşleşen tüm çiftleri bularak başlar. Daha sonra eşleşen çiftleri tek bir satırda birleştirir.
INNER JOIN için genel sözdizimi şöyledir:
tablo1'DEN sütun(lar)ı SEÇİN INNER JOIN tablo2 ON tablo1.sütun = tablo2.sütun;Nasıl çalıştığını göstermek için bir JOIN işlemine bakalım.
Kullanıcı adında bir tablonuz olduğunu varsayalım: alanları olan: id, name, age, dil-örnek SQL sorgusu tablo oluşturmak için aşağıdadır:
TABLO OLUŞTUR "kullanıcılar" ("id" INTEGER NULL DEĞİL,
"isim" METİN NULL DEĞİL,
"yaş" TAM SAYISI NULL DEĞİL,
"dil" METİN,
BİRİNCİL ANAHTAR("id" OTOMATİK ARTIRMA)
);
Ayrıca, alan kimliğine sahip satırlar ve aşağıda Sağlanan role-SQL Sorgusu adlı başka bir tablomuz var:
TABLO OLUŞTUR "Roller" ("id" INTEGER NULL DEĞİL,
"rol" METİN,
BİRİNCİL ANAHTAR("id" OTOMATİK ARTIRMA)
)
Şimdi, aşağıda gösterilen sorguyu kullanarak bir SQLite INNER JOIN işlemi çalıştırabiliriz:
kullanıcıları SEÇ.kimlik, kullanıcılar.isim, Roller.rol kullanıcılardan INNER JOIN Roller ON kullanıcılar.kimlik = Roller.İD;Yukarıdaki sorgu, aşağıda gösterilen tabloyla sonuçlanacaktır:
2: ÇAPRAZ BİRLEŞTİRME
Diğer SQL JOIN türü, CROSS JOIN'dir. Bu tür, ilk tablodaki her satırı ikinci tablodaki her satırla eşleştirir. Bunu bir Kartezyen Ürün olarak düşünün, çünkü sonuçlar tablo 1'deki tablo 2'deki her satırla eşleşen bir dizi satırdır. Örneğin, tablo1'in (a) satırı ve tablo2'nin (b) satırı varsa, elde edilen tablonun a*b satırı olacaktır.
NOT: Muazzam masa setleriyle sonuçlanma potansiyeline sahip oldukları için çapraz birleştirmeleri kullanırken dikkatli olun.
Çapraz Birleştirme için genel sözdizimi şöyledir:
tablo1'DEN sütun(lar)ı SEÇ CROSS JOIN tablo2;Kullanıcı tablosundan roller tablosunun tüm satırlarıyla bir çapraz birleştirme düşünün. Aşağıdaki SQL Sorgusunu düşünün:
SEÇ * KULLANICILARDAN CROSS JOIN rolleri;Yukarıdaki sorguyu çalıştırmak, aşağıda gösterildiği gibi bir tabloyla sonuçlanacaktır:
3: SOL DIŞ BİRLEŞTİRME
Bakacağımız son birleştirme, OUTER JOIN. OUTER JOIN, INNER JOIN'in bir uzantısıdır. INNER birleştirme gibi, AÇIK, NÖTR ve KULLANIM gibi koşullarda ifade ediyoruz. SQL'in üç tür OUTER JOINS tanımladığını da belirtmekte fayda var: sol, sağ ve tam, ancak SQLite yalnızca LEFT JOIN'i destekler.
LEFT dış JOIN, koşulda belirtilen LEFT tablosundaki tüm satırları ve yalnızca birleştirilmiş koşulun doğru olduğu diğer tablolardaki satırları döndürür.
Aşağıdaki Sorguyu göz önünde bulundurun.
kullanıcıları SEÇ.kimlik, kullanıcılar.isim, roller.rol, kullanıcılar.dil kullanıcılardan LEFT OUTER JOIN Kullanıcılar ÜZERİNDEKİ Roller.kimlik = Roller.İD;Yukarıdaki sorgu, aşağıda gösterilen tabloyla sonuçlanacaktır:
Sonuç
Bu öğretici, SQLite'de SQL birleştirmelerinin nasıl gerçekleştirileceğini ve değiştirilmiş bilgilerle yeni tablolar oluşturmayı göstermiştir. Veritabanlarıyla çalışırken çok kullanışlı oldukları için SQL JOIN'leri denemeye devam etmek iyidir.
Okuduğunuz için teşekkürler!