Ünite 3 — Çoklu Tablolar: JOIN'ler
12 çoktan seçmeli soru — süre sınırı yok.
İlişkisel Model
1. players.team_id sütunu ne tür bir ilişkiyi temsil eder?
INNER JOIN
2. INNER JOIN hangi satırları sonuca dahil eder?
INNER JOIN
3. SELECT p.full_name, t.team_name FROM players p, teams t; sorgusuyla ilgili en büyük risk nedir?
LEFT JOIN
4. Hiç gol atmamış oyuncuları bulmak için hangi desen kullanılır?
Self JOIN
5. Self JOIN yaparken takma ad (alias) kullanmak neden zorunludur?
Çok Tablolu Sorgular
6. Üç tabloyu (enrollments, students, courses) zincirleme JOIN'lerken sıralama sonucu değiştirir mi?
Küme İşlemleri
7. UNION ile UNION ALL arasındaki fark nedir?
Küme İşlemleri
8. SELECT player_id FROM players EXCEPT SELECT player_id FROM goals; sorgusu neyi bulur?
LEFT JOIN
9. LEFT JOIN sonrası GROUP BY ile sayım yaparken COUNT(*) yerine neden COUNT(sağ_tablo.kolon) tercih edilir?
INNER JOIN
10. Aynı tabloyu (teams) hem ev sahibi hem deplasman için kullanan doğru JOIN yaklaşımı hangisidir?
Self JOIN
11. teachers tablosunda department_head_id NULL olan bir öğretmen ne anlama gelir?
Çok Tablolu Sorgular
12. Çok tablolu bir JOIN'de eksik ya da yanlış bir ON koşulunun en tipik belirtisi nedir?
1. players.team_id sütunu ne tür bir ilişkiyi temsil eder?
- ABir Primary Key
- Bteams tablosuna işaret eden bir Foreign Key
- CBir INDEX
- DBir CHECK kısıtı
2. INNER JOIN hangi satırları sonuca dahil eder?
- ASol tablodaki tüm satırları, eşleşme olmasa bile
- BSadece her iki tabloda da ON koşulunu sağlayan satırları
- CSağ tablodaki tüm satırları
- Dİki tablonun kartezyen çarpımını her zaman
3. SELECT p.full_name, t.team_name FROM players p, teams t; sorgusuyla ilgili en büyük risk nedir?
- ASöz dizimi hatası verir, hiç çalışmaz
- BON koşulu olmadığı için kartezyen çarpım oluşur — her oyuncu her takımla eşleşir
- CSadece takım adı olmayan oyuncuları getirir
- Dteam_name sütunu bulunamaz hatası verir
4. Hiç gol atmamış oyuncuları bulmak için hangi desen kullanılır?
- AINNER JOIN + WHERE goal_id IS NOT NULL
- BLEFT JOIN + WHERE goal_id IS NULL (anti-join)
- CRIGHT JOIN + ORDER BY
- DUNION ALL
5. Self JOIN yaparken takma ad (alias) kullanmak neden zorunludur?
- AZorunlu değildir, stil tercihidir
- BAynı tablo iki kez FROM'da geçtiği için sütun kökeni belirsizleşir
- CTakma ad sorguyu otomatik hızlandırır
- DSQLite takma adsız self join'i reddeder
6. Üç tabloyu (enrollments, students, courses) zincirleme JOIN'lerken sıralama sonucu değiştirir mi?
- AEvet, JOIN sırası her zaman farklı sonuç üretir
- BHayır, SQL hangi tabloların nasıl bağlandığını ON koşullarından anlar
- CSadece 3'ten fazla tabloda önemlidir
- DJOIN sırası performansı değil sonucu etkiler
7. UNION ile UNION ALL arasındaki fark nedir?
- AAralarında fark yoktur
- BUNION tekrar eden satırları eler, UNION ALL elemez
- CUNION ALL sadece sayısal sütunlarla çalışır
- DUNION sadece iki tablo JOIN'lendiğinde kullanılabilir
8. SELECT player_id FROM players EXCEPT SELECT player_id FROM goals; sorgusu neyi bulur?
- AHem players hem goals'ta olan oyuncuları
- Bgoals'ta olan ama players'ta olmayan oyuncuları
- Cplayers'ta olan ama goals'ta hiç geçmeyen oyuncuları (hiç gol atmamış)
- DTüm oyuncuları tekrarsız
9. LEFT JOIN sonrası GROUP BY ile sayım yaparken COUNT(*) yerine neden COUNT(sağ_tablo.kolon) tercih edilir?
- AAralarında fark yoktur
- BCOUNT(*), eşleşmesi olmayan satırı da 1 sayar; COUNT(kolon) NULL'ları saymaz, doğru 0 verir
- CCOUNT(*) sadece INNER JOIN ile çalışır
- DCOUNT(kolon) her zaman yanlış sonuç verir
10. Aynı tabloyu (teams) hem ev sahibi hem deplasman için kullanan doğru JOIN yaklaşımı hangisidir?
- Ateams tablosunu iki farklı takma adla iki kez JOIN'lemek
- Bteams tablosunu bir kez JOIN'leyip WHERE ile filtrelemek
- CBu senaryo SQL'de desteklenmez
- DUNION ile iki ayrı sorgu birleştirmek zorunludur
11. teachers tablosunda department_head_id NULL olan bir öğretmen ne anlama gelir?
- AVeri hatası, düzeltilmelidir
- BO öğretmenin bağlı olduğu bir bölüm başkanı yoktur — muhtemelen kendisi başkandır
- CO öğretmen sistemden silinmiştir
- Ddepartment_head_id hiçbir zaman NULL olamaz
12. Çok tablolu bir JOIN'de eksik ya da yanlış bir ON koşulunun en tipik belirtisi nedir?
- ASorgu her zaman hata verir
- BBeklenenden çok daha fazla (anlamsız) satır dönmesi
- CSonuç her zaman boş döner
- DSQLite otomatik doğru koşulu tahmin eder