JOIN Neden Kullanılır (İlişkisel Modelin Özeti)
İlişkisel modeli, normalleştirilmiş tabloları ve dış anahtarları gözden geçirin; JOIN'in tablolar arasındaki verileri yeniden birleştiren köprü olmasının nedenini öğrenin.
JOIN Neden Kullanılır (İlişkisel Modelin Özeti), CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
Tek Görselde Normalleştirme
Verileri çoğaltmak yerine tablolar arasında bölüştürürsünüz:
users— id, name, emailorders— id, user_id, total
Her sipariş, kullanıcının adını ve e-postasını yeniden saklamak yerine kullanıcıya id ile başvurur.
Neden Normalleştirme?
Yararları:
- Çoğaltma yok — bir kullanıcının e-postasını tek bir yerde değiştirin
- Daha küçük tablolar — daha iyi önbellek isabet oranı
- Kısıtlamalar ilişkileri zorunlu kılar
Yabancı Anahtarlar Bağlantıyı Tanımlar
Bağlantı bir FOREIGN KEY ile bildirilir:
CREATE TABLE orders (
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id),
total NUMERIC(10,2) NOT NULL
);Verileri JOIN ile Yeniden Birleştirme
"Her siparişte kullanıcının adını" göstermek için tabloları yeniden JOIN ile birleştirirsiniz:
SELECT o.id, o.total, u.full_name, u.email
FROM orders o
JOIN users u ON u.id = o.user_id
ORDER BY o.id;Zihinsel Model: Süzülmüş Kartezyen Çarpım
Kavramsal olarak bir JOIN:
- İki tablonun kartezyen çarpımını oluşturur (A'nın her satırı B'nin her satırıyla eşleştirilir)
- Yalnızca ON koşulunun TRUE olduğu çiftleri tutar
Uygulamada veritabanı karma, birleştirme veya iç içe döngülü JOIN kullanır — ancak sonuç aynıdır.
Bire Çok
Bir kullanıcıda birçok sipariş olabilir. "Çok" tarafı yabancı anahtarı taşır.
-- Each order row points back to its user:
SELECT u.email, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.email;JOIN Tablosu Üzerinden Çoktan Çoka
Etiketler ↔ Gönderiler: üçüncü bir tablo ekleyin:
CREATE TABLE posts (id BIGSERIAL PRIMARY KEY, title TEXT);
CREATE TABLE tags (id BIGSERIAL PRIMARY KEY, name TEXT);
CREATE TABLE post_tags (
post_id BIGINT REFERENCES posts(id),
tag_id BIGINT REFERENCES tags(id),
PRIMARY KEY (post_id, tag_id)
);Çoktan Çoğa Sorgulama
Her şeyi bir araya getirmek için iki JOIN:
SELECT p.title, t.name
FROM posts p
JOIN post_tags pt ON pt.post_id = p.id
JOIN tags t ON t.id = pt.tag_id
WHERE t.name = 'sql';Normalleştirmeyi Ne Zaman Bozmalı?
Normalleştirmeyi bozma (verileri çoğaltma) bazen performans için kullanılır — hesaplanmış toplamları önbelleğe alma, tam metin sütunları ve gerçekleştirilmiş görünümler gibi. Normalleştirilmiş olarak başlayın; ölçümlerinize göre normalleştirmeyi bozun.
JOIN'ler ve Alt Sorgular
Birçok JOIN sorgusu alt sorgular olarak ve bunun tersi biçimde yazılabilir. Hangisi daha açık okunuyorsa onu kullanın; modern planlayıcılar çoğu zaman aynı planı üretir.
Yabancı Anahtarlar Otomatik Olarak Uygulanmaz
Bunları REFERENCES ile bildirmeniz gerekir. FK kısıtlamaları olsa bile FK sütununu dizinlemek YOUR sorumluluğunuzdur — JOIN performansı için bir tane açıkça bildirin.
Özet
JOIN'ler, bütünlük için tablolar arasında bölünmüş verileri yeniden birleştirir.
- Yabancı anahtarlar bağlantıyı bildirir
- JOIN, sorgu zamanında normalleştirmeyi tersine çevirir
- Bire çok ilişkide FK "çok" tarafında, çoktan çoğa ilişkide JOIN tablosu üzerinden kullanılır
Hızlı Kontrol
users ve orders arasındaki bire çok ilişkisinde yabancı anahtar sütununu hangi tablo taşır?
Sıkça Sorulan Sorular
“JOIN Neden Kullanılır (İlişkisel Modelin Özeti)” dersi ücretsiz mi?
Evet — “JOIN Neden Kullanılır (İlişkisel Modelin Özeti)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“JOIN Neden Kullanılır (İlişkisel Modelin Özeti)” dersinde ne öğreneceğim?
İlişkisel modeli, normalleştirilmiş tabloları ve dış anahtarları gözden geçirin; JOIN'in tablolar arasındaki verileri yeniden birleştiren köprü olmasının nedenini öğrenin. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“JOIN Neden Kullanılır (İlişkisel Modelin Özeti)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- JOIN Neden Kullanılır (İlişkisel Modelin Özeti)
- INNER JOIN Mekanizması
- LEFT/RIGHT JOIN ve OUTER Birleştirmeleri
- Kendi Kendine Birleştirmeler ve Takma Adlar